0

我有以下mysql表:

    Person   Car      Color
     ------------------------
     1       Audi     Blue
     2       BMW      Red
     3       Honda    Blue
     4       Audi     Red
     5       Audi     Yellow
     6       Audi     Blue

我正在尝试选择以下内容:

拥有奥迪及其颜色的人在每个人中的发现不到 3 次。

结果应该是第 4 个人和第 5 个人。

我尝试了以下查询,但没有得到想要的结果:

SELECT Person FROM CarTable
WHERE Car = "Audi"
GROUP BY Color
HAVING COUNT(*) < 3

实现我正在做的事情的正确查询是什么?

4

2 回答 2

1

下面是一个使用子查询的查询,该子查询首先识别颜色

select person 
from cars 
where car='Audi' 
      and color in (select color 
                    from cars 
                    group by color 
                    having count(color) < 3);
于 2013-03-24T00:10:05.727 回答
1
SELECT Person
FROM CarTable t1
JOIN (SELECT color, COUNT(*) c
      FROM CarTable
      GROUP BY color
      HAVING c < 3) t2
USING (color)
于 2013-03-23T23:42:12.793 回答