2014-10-05 13 views

Odpowiedz

9

spróbuj tego:

select case when count(distinct col1)= count(col1) 
then 'column values are unique' else 'column values are NOT unique' end 
from tbl_name; 
+2

Działa to, jeśli założysz, że żadna z wartości nie ma wartości "NULL". –

0

Czy próbujesz zwrócić tylko różne wartości z kolumny? Jeśli tak, możesz użyć słowa kluczowego DISTINCT. Składnia jest następująca:

SELECT DISTINCT column_name,column_name 
FROM table_name; 
+0

Naprawdę nie wracają, tylko określ. Ja też jestem mylić, ale to, co jest proszony, stąd chciał wiedzieć, jak napisać takiej kwerendy – JackyBoi

+0

można użyć coś takiego: SELECT Kolumna1, Kolumna2, count (*) OD tabeli GROUP BY Kolumnie1, Kolumna2 HAVING COUNT (*)> 1 Jeśli zwrócone wartości mają jakiekolwiek wartości, są to wartości nieunikalne. –

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

Jeśli # unikalnych wartości jest równa całkowitej # wartości, to wszystkie wartości są unikatowe.

+2

+1. Chciałbym dodać, że to rozwiązanie nie wykryje duplikatów 'NULL's; działa tylko dla wartości (innych niż "NULL"). – stakx

0

Użyj DISTINCT wewnątrz funkcji COUNT zagregowanej, jak pokazano poniżej:

SELECT COUNT(DISTINCT column_name) AS some_alias FROM table_name 

Powyższe zapytanie daje liczbę różnych wartości w tej kolumnie.

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' 

Jeśli chcesz wymienić te, które nie są unikalne, po prostu weź zapytanie wewnętrzne i uruchom je. HTH.

0

Jeśli chcesz sprawdzić, czy wszystkie wartości są unikatowe i dbasz o NULL wartości, a następnie zrobić coś takiego:

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; 
0

Z tym następujące zapytanie, masz tę zaletę, że nie tylko zobaczysz, czy Twoje kolumny są unikatowe, ale możesz też zobaczyć, która kombinacja jest najbardziej nieunikalna. Ponadto, ponieważ wciąż widzisz częstotliwość 1, klucz jest unikalny, wiesz, że twoje wyniki są dobre, a nie na przykład po prostu brakuje; coś jest mniej jasne, gdy używasz klauzuli HAVING.

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