Проблема с запросом SQL - PullRequest
       7

Проблема с запросом SQL

1 голос
/ 13 января 2012

Предполагается, что это очень простая проблема, но почему-то я полностью застрял ... Это упрощенный пример, демонстрирующий проблему:

Table:
int     ID (primary key)
varchar Child
varchar Toy

Запуск

SELECT Child, Toy FROM TestTable

дает мне:

Child    Toy
------------------------
A        T_A
B        T_B
A        T_C
C        T_D  
A        T_E
B        T_F

Мне нужен запрос, который возвращает мне записи Child / Toy только для детей, у которых более 2 игрушек - только одна в этом примере.Таким образом, результат должен выглядеть следующим образом:

Child    Toy
------------------------
A        T_A
A        T_C
A        T_E

Ответы [ 4 ]

8 голосов
/ 13 января 2012

Это находит детей с более чем двумя игрушками:

select Child
from TestTable
group by Child
having count(*) > 2

Затем вы можете сделать это, чтобы получить все нужные вам столбцы:

select Child, Toy
from TestTable 
where Child in (
    select Child
    from TestTable
    group by Child
    having count(*) > 2
)
3 голосов
/ 13 января 2012
SELECT Child, Toy
FROM TestTable
WHERE Child IN
(
    SELECT Child
    FROM TestTable
    GROUP BY Child
    HAVING COUNT(*) > 2
)
1 голос
/ 13 января 2012
SELECT Child, Toy
FROM TestTable
WHERE child IN(
   SELECT Child FROM TestTable group by Child having count(*)>2
)
0 голосов
/ 13 января 2012

Этот запрос должен работать

SELECT
    Child,
    Toy
FROM TestTable t
WHERE
    t.Child IN 
    (
        SELECT Child
        FROM TestTable  
        GROUP BY Child
        HAVING COUNT(*) > 2         
    )   
...