sourcecode

열의 값이 고유한지 확인하기 위한 SQL 쿼리

codebag 2023. 6. 27. 22:10
반응형

열의 값이 고유한지 확인하기 위한 SQL 쿼리

열의 값이 고유한지 확인하기 위해 쿼리를 작성하는 방법은 무엇입니까?

사용해 보십시오.

SELECT CASE WHEN count(distinct col1)= count(col1)
THEN 'column values are unique' ELSE 'column values are NOT unique' END
FROM tbl_name;

참고: 이는 'col1'에 'ntext' 또는 'text' 데이터 유형이 없는 경우에만 작동합니다.이러한 데이터 유형 중 하나가 있는 경우 'distinct col1' 대신 'distinct CAST(col1 AS nvarchar(4000))'(또는 유사)를 사용합니다.

select count(distinct column_name), count(column_name)
from table_name;

고유한 값의 수가 총 값의 수와 같으면 모든 값이 고유합니다.

IF NOT EXISTS ( 
  SELECT
    column_name
  FROM
    your_table
  GROUP BY
    column_name
  HAVING
    COUNT(*)>1
)
  PRINT 'All are unique'
ELSE
  PRINT 'Some are not unique'

고유하지 않은 항목을 나열하려면 내부 쿼리를 사용하여 실행하십시오. HTH.

다음 쿼리를 사용하면 열이 고유한지 여부를 확인할 수 있을 뿐만 아니라 가장 고유하지 않은 조합도 확인할 수 있습니다.또한 빈도 1은 여전히 고유한 키이므로 결과가 양호하며, 예를 들어 단순히 누락된 것이 아니라 HAVING 절을 사용할 때 명확하지 않습니다.

SELECT Col1, Col2, COUNT(*) AS Freq
FROM Table
GROUP BY Col1, Col2
ORDER BY Freq DESC

열의 고유한 값만 반환하려고 합니까?그렇다면 DISTINCT 키워드를 사용할 수 있습니다.구문은 다음과 같습니다.

SELECT DISTINCT column_name,column_name
FROM table_name;

모든 값이 고유한지 여부를 확인하고 싶은 경우NULL값을 입력하고 다음과 같은 작업을 수행합니다.

select (case when count(distinct column_name) = count(column_name) and
                  (count(column_name) = count(*) or count(column_name) = count(*) - 1)
             then 'All Unique'
             else 'Duplicates'
        end)
from table t;
select (case when count(distinct column1 ) = count(column1)
             then 'Unique'
             else 'Duplicates'
        end)
from table_name

열에서 고유한 값을 알고자 하는 것으로 알고 있습니다.따라서 select distinate를 사용해도 이 고유한 것처럼 나열될 뿐 그렇지 않을 수 있기 때문에 문제가 해결되지 않습니다.

간단한 솔루션은 다음과 같습니다.

SELECT COUNT(column_name), column_name
FROM table_name
GROUP BY column_name
HAVING COUNT(column_name) = 1;

이 코드는 고유한 값을 반환합니다.

SELECT code FROM #test
group by code
having count(distinct code)= count(code)

고유한 값인 14를 반환합니다.

enter image description here

아래와 같이 COUNT 집계 함수 내에서 DISTINCT 키워드를 사용합니다.

SELECT COUNT(DISTINCT column_name) AS some_alias FROM table_name

위의 쿼리는 해당 열의 고유 값 개수를 제공합니다.

언급URL : https://stackoverflow.com/questions/26199765/sql-query-to-determine-that-values-in-a-column-are-unique

반응형