Как написать запрос, чтобы просто определить, что значения столбца уникальны?
SQL-запрос для определения того, что значения в столбце уникальны
Ответ 1
Попробуй это:
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". Если у вас есть один из этих типов данных, используйте "отдельный CAST (col1 AS nvarchar (4000))" (или аналогичный) вместо "отличное col1".
Ответ 2
select count(distinct column_name), count(column_name)
from table_name;
Если # уникальных значений равно общему числу значений, то все значения уникальны.
Ответ 3
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'
Если вы хотите перечислить те, которые не уникальны, просто возьмите внутренний запрос и запустите его. НТН.
Ответ 4
С помощью этого следующего запроса у вас есть преимущество не только в том, чтобы увидеть, уникальны ли ваши столбцы, но вы также можете увидеть, какая комбинация наиболее уникальна. Кроме того, поскольку вы все еще видите частоту 1, ваш ключ уникален, вы знаете, что ваши результаты хороши, а не, например, просто отсутствуют; что-то менее понятно при использовании предложения HAVING.
SELECT Col1, Col2, COUNT(*) AS Freq
FROM Table
GROUP BY Col1, Col2
ORDER BY Freq DESC
Ответ 5
Если вы хотите проверить, являются ли все значения уникальными, и вы заботитесь о значениях 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;
Ответ 6
Вы пытаетесь вернуть только отдельные значения столбца? Если это так, вы можете использовать ключевое слово DISTINCT. Синтаксис:
SELECT DISTINCT column_name,column_name
FROM table_name;
Ответ 7
Используйте ключевое слово DISTINCT внутри функции агрегации COUNT, как показано ниже:
SELECT COUNT(DISTINCT column_name) AS some_alias FROM table_name
Вышеприведенный запрос даст вам количество различных значений в этом столбце.