SQL-запрос должен получить имена, где count (id) = 2 - PullRequest
16 голосов
/ 16 сентября 2009

У меня есть стол programparticipants. В настоящее время я успешно запрашиваю идентификаторы, где count(name) > 1. Теперь мне нужно запросить имена, принадлежащие этим идентификаторам, где count(name) > 1.

Пример, результат данных, возвращаемый в данный момент:

ID     count(name)
1      2
3      4
4      3

Пример, необходим результат данных:

ID     name
1      nm1
1      nm3
3      nm2
3      nm3
3      nm4
3      nm7
4      nm5
4      nm8
4      nm9

Ответы [ 6 ]

51 голосов
/ 16 сентября 2009
select count(id), name 
from programparticipants 
group by name 
having count(id) > 1
6 голосов
/ 16 сентября 2009

Вы можете использовать это:

SELECT 
   (SELECT name FROM participants WHERE id=p.participantid) AS name
FROM
   programparticipants AS p
WHERE
   .... (the part where you find count(name)>1)
4 голосов
/ 16 сентября 2009

Я думаю GROUP BY и HAVING - это то, что вы хотите.

2 голосов
/ 16 сентября 2009
select id, Name 
from programparticipants
where id in ( <your current query selecting only id here> )
1 голос
/ 16 сентября 2009
SELECT id, Name
FROM   programparticipants
GROUP BY id, Name
HAVING COUNT(*) > 1
1 голос
/ 16 сентября 2009

Думаю, вы захотите посмотреть на группу, имея:

select id, name, count(name) from table group by 2,1 having count(name) = 2;

Вы можете заменить = 2 на> 1, в зависимости от того, что вы хотите (название говорит = 2, вопрос говорит> 1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...