0

次のmysqlテーブルがあります:

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

私は次のものを選択しようとしています:

Audi とその色を所有している人は、全員で 3 回未満しか見つかりません。

結果は Person 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 に答える