我有以下mysql表:
Person Car Color
------------------------
1 Audi Blue
2 BMW Red
3 Honda Blue
4 Audi Red
5 Audi Yellow
6 Audi Blue
我正在尝试选择以下内容:
拥有奥迪的人及其颜色在每个人身上发现不到3次。
结果应该是第4人和第4人。 5。
我尝试了以下查询,但我没有得到预期的结果:
SELECT Person FROM CarTable
WHERE Car = "Audi"
GROUP BY Color
HAVING COUNT(*) < 3
实现我正在做的事情的正确查询是什么?
答案 0 :(得分:1)
SELECT Person
FROM CarTable t1
JOIN (SELECT color, COUNT(*) c
FROM CarTable
GROUP BY color
HAVING c < 3) t2
USING (color)
答案 1 :(得分:1)
下面是一个使用首先标识颜色的子查询的查询
select person
from cars
where car='Audi'
and color in (select color
from cars
group by color
having count(color) < 3);