열의 값이 고유한지 확인하기 위한 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를 반환합니다.
아래와 같이 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
'sourcecode' 카테고리의 다른 글
Python 패키지의 종속성을 찾는 방법 (0) | 2023.06.27 |
---|---|
스레드화에서 join()의 용도는 무엇입니까? (0) | 2023.06.27 |
로드에서 현재 사용자를 가져올 수 없습니다. (0) | 2023.06.27 |
OS X "El Capitan"에 보석을 설치할 수 없습니다. (0) | 2023.06.27 |
PL/SQL에서 출력을 새 줄로 인쇄하려면 어떻게 해야 합니까? (0) | 2023.06.27 |