#sql
#sql
Вопрос:
У меня есть таблица det
со следующими столбцами:
Name ID
--------
A 1
B 2
C 1
D 3
Мне нужен запрос, чтобы проверить, существует ли множественная запись имени для одного идентификатора. Здесь я ожидаю такого результата:
Name ID
--------
A 1
c 1
Ответ №1:
вы можете использовать простой запрос select с group by
SELECT ID, count(*) from det group by ID having count(*) >1
Комментарии:
1. Если могут существовать повторяющиеся имена, используйте
...having count(distinct name) > 1
Ответ №2:
Используйте подзапрос, в котором вы выбираете соответствующие идентификаторы, имеющие несколько имен
SELECT Name, ID
FROM det
WHERE ID IN (
SELECT ID
FROM det
GROUP BY ID
HAVING COUNT(Name) > 1
);
Комментарии:
1. Точный результат, который я получил. Thnaks alot
Ответ №3:
Я бы просто использовал exists
:
select d.*
from det d
where exists (select 1 from det d2 where d2.id = d.id and d2.name <> d.name);