MySQL比较来自同一列的计数

时间:2014-10-29 09:43:27

标签: sql database postgresql phpmyadmin

我有以下表结构: -

Brand 

id   |  bname  | desc 
----------------------


Products 

pid   |  bid_fk  |  name  |  rating  |  type 
---------------------------------------------

鉴于产品type可能是'S'或'T',我想SELECT品牌'S'类型的品牌比'T'类型

我尝试过使用COUNT,但我不知道如何比较Products表中两种类型的COUNT

1 个答案:

答案 0 :(得分:2)

尝试将GROUP BYHAVING语句一起使用,并将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)