我有以下表结构: -
Brand
id | bname | desc
----------------------
Products
pid | bid_fk | name | rating | type
---------------------------------------------
鉴于产品type
可能是'S'或'T',我想SELECT
品牌'S'类型的品牌比'T'类型
我尝试过使用COUNT
,但我不知道如何比较Products表中两种类型的COUNT
。
答案 0 :(得分:2)
尝试将GROUP BY
与HAVING
语句一起使用,并将S
的计数与T
的计数进行比较。
要获得计数,您可以使用CASE
语句,如下所示:
SELECT b.id,MAX(b.bname)
FROM Brand b
JOIN Product p on (p.bid_fk=b.id)
GROUP BY b.id
HAVING SUM(CASE WHEN p.type='S' THEN 1 ELSE 0 END) >
SUM(CASE WHEN p.type='T' THEN 1 ELSE 0 END)