2014-10-05 3 views
8

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

+0

_all_ 값이 고유 한 값인지 확인하려고합니까? – md4

+0

예, 모든 열이 고유하거나 그렇지 않은 것보다 많습니다. – JackyBoi

+0

관련 없음, 동일하지 않은 경우 : http://stackoverflow.com/questions/6941049/how-to-find-out-whether-a-table-has- some-unique-columns –

답변

9

이 시도 :이 다음으로

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; 
+2

이것은 'NULL'값이 없다고 가정 할 때 작동합니다. –

0

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

SELECT DISTINCT column_name,column_name 
FROM table_name; 
+0

실제로 돌아 오지 않고 그냥 결정하십시오. 열 1, 열 2에 의해 테이블 그룹에서 열 1, 열 2, COUNT (*) 을 선택 : 내가 너무 혼란 스러워요,하지만 그 요청을 받고 것입니다, 그래서 당신은 같은 것을 사용할 수 있습니다 같은 쿼리 – JackyBoi

+0

를 작성하는 방법을 알고 싶어 HACHING COUNT (*)> 1 반환되는 값에 값이 있으면 해당 값이 고유하지 않은 값입니다. –

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

경우 모든 고유 값이다. 아래 그림과 같이

+2

+1. 나는이 솔루션이 중복 된'NULL's을 탐지하지 않을 것이라고 덧붙이고 싶습니다. 그것은 (''NULL이 아닌) 값에 대해서만 작동합니다. – stakx

0

는 COUNT 집계 함수 내부의 DISTINCT 키워드를 사용

SELECT COUNT(DISTINCT column_name) AS some_alias FROM table_name 

위의 쿼리가 해당 열에 당신에게 고유 값의 수를 줄 것이다.

2
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.

0

하는 모든 값이 가와 당신에 대한 NULL 값을 걱정 고유 있는지 확인하려면, 다음과 같은 일을 할 쿼리를 사용하면 열이 고유한지 확인할 수있을뿐만 아니라 어떤 조합이 가장 고유하지 않은지 확인할 수도 있습니다. 또한, 빈도 1이 여전히 고유하다는 것을 알기 때문에 결과가 좋고, 단순히 누락 된 것이 아니라는 것을 알 수 있습니다. HAVING 절을 사용하면 명확하지 않습니다.

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

:

select case when count(distinct col1)= count(col1) 
then 'column values are unique' else 'column values are NOT unique' end 
from tbl_name; 
관련 문제