我有一列有15個不同的值。我想重新計算其中有幾個的數量, 我想出了例如如何計算表中的特定值
select a,COUNT(IFNULL(b != 1,NULL)),COUNT(IFNULL(b != 2,NULL)) from
mytable group by a
select a,SUM(CASE WHEN a = 1 THEN 1 ELSE 0)),SUM(CASE WHEN a = 2 THEN 1 ELSE 0)) from
mytable group by a
這樣做的最好方法是什麼? (注意,我需要將這些值轉換爲列, 簡單地從mytable中選擇a,b,count(*),其中b = 1或b = 2 group by a,b;不會這樣做。)
如果您在單獨的列中需要它們,那麼您的查詢看起來效果與它將得到的一樣有效。 – Wrikken 2010-10-12 08:55:07
'IFNULL(expr,NULL)'是毫無意義的。它總是等同於'expr'。 – 2010-10-12 08:57:24
另外'CASE當a = 1則1 ELSE 0'相當於'a = 1'。 – 2010-10-12 08:58:39