嗨我试图以水平方式显示COUNT结果,但没有成功。有没有什么方法可以做到这一点?如何水平显示MYSQL COUNT
我有这样的表(在Excel中用于演示目的创建)
现在我要显示这样的结果。
任何建议将不胜感激。
嗨我试图以水平方式显示COUNT结果,但没有成功。有没有什么方法可以做到这一点?如何水平显示MYSQL COUNT
我有这样的表(在Excel中用于演示目的创建)
现在我要显示这样的结果。
任何建议将不胜感激。
SELECT store_name,
SUM(CASE WHEN status = 'hold' THEN 1 ELSE 0 END) AS hold_count,
SUM(CASE WHEN status = 'ship' THEN 1 ELSE 0 END) AS ship_count,
SUM(CASE WHEN status = 'return' THEN 1 ELSE 0 END) AS return_count
FROM table
group by store_name
在求和总和中使用if子句。
select store_name,
sum(if(status='hold', 1, 0)) as 'hold',
sum(if(status='ship', 1, 0)) as 'ship',
sum(if(status='return', 1, 0)) as 'return'
from mytable
group by store_name;
也适用,太棒了!谢谢! – genpet 2012-02-26 11:06:04
啊是的,着名的CASE方法。 +1 :) – Bojangles 2012-02-26 10:36:19
非常感谢你..我继续探索计数,但事实证明,我需要SUM。完美的作品! – genpet 2012-02-26 10:49:52
@genpet:'COUNT()'也可以。只需将(例如第一行)替换为:'COUNT(CASE WHEN status ='hold'THEN 1 END)AS hold_count' – 2012-02-29 16:56:33