извлечение записи, которая имеет только одно значение - PullRequest
1 голос
/ 07 апреля 2010

Пожалуйста, предложите мне запрос, который извлекает только те записи, которые имеют одну строку в таблице. Например:

**table1.**
name age
aaa  20
bbb  10
ccc  20
ddd  30

Если я бегу ", выберите отдельный возраст из таблицы 1. Результат будет:

age
20
10
30

Но мне нужен запрос, который выдает результат типа

name age
bbb  10
ddd  30

Я использую DB2 в качестве базы данных. Спасибо ....

Ответы [ 2 ]

1 голос
/ 07 апреля 2010

Чтобы получить только уникальные возрасты:

SELECT age
FROM table1
GROUP BY age
HAVING COUNT(*) = 1

Чтобы также получить столбец имени, в MySQL вы просто добавили бы столбец:

SELECT name, age
FROM table1
GROUP BY age
HAVING COUNT(*) = 1

Этот трюк не будет работать в большинстве других баз данных, и я предполагаю, что он не будет работать в DB2. Вместо этого вы можете использовать агрегатную функцию, такую ​​как MIN, или внутренний выбор с EXISTS, IN или JOIN:

SELECT MIN(name), age
FROM table1
GROUP BY age
HAVING COUNT(age) = 1

или

SELECT name, age
FROM table1
WHERE age IN (
    SELECT age
    FROM table1
    GROUP BY age
    HAVING COUNT(age) = 1
)
0 голосов
/ 07 апреля 2010
SELECT name, age
FROM table1
GROUP BY age
HAVING COUNT(age)=1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...