Как вернуть идентификаторы, для которых в SQL возвращается только одна запись?

Вопрос:

В настоящее время я обрезал раздел моего набора данных, но мне нужно отфильтровать его дальше.

Моя цель состоит в том, чтобы изолировать только те идентификаторы, для которых возвращена одна строка.

Например, с набором данных следующим образом:

ID          Client Name                  Client Manager
1           XYZ Corp.                    Ralph
2           Bob Marketplace            Marianne
2           Bob Marketplace            David
3           Davis Auto Repair            Ralph
3           Davis Auto Repair            Marianne
4           Everything Inc.              David
5           Pet World                    Marianne

Мне нужно вернуться:

ID          Client Name                  Client Manager
1           XYZ Corp.                    Ralph
4           Everything Inc.              David
5           Pet World                    Marianne

Лучший ответ:
SELECT ID, 
       Client_Name, 
       Client_Manager
FROM table_name
WHERE ID IN 
(
    SELECT ID 
    FROM table_name
    GROUP BY ID
    HAVING COUNT(*) = 1
)
Ответ №1
SELECT ID, [Client Name], min([Client Manager]) as [Client Manager]
FROM dbo.Table1
GROUP BY ID, [Client Name]
HAVING COUNT(*) = 1

Ответ №2

Попробуй это

SELECT ID, [Client Name], [Client Manager] FROM Table1
WHERE ID IN
(
SELECT ID FROM Table1
GROUP BY ID
HAVING COUNT(ID) = 1
)

Ответ №3
SELECT *
FROM your_table a, (SELECT ID FROM your_table
GROUP BY ID
HAVING COUNT(*) = 1) b
WHERE a.ID = b.ID;

см. SQLFiddle DEMO

Оцените статью
TechArks.Ru
Добавить комментарий