我的SQL表中有以下数据。
uid user category count date
--------------------------------------------------
1 henry RED 4 2013-05-01
2 john BLUE 3 2013-05-01
3 alice RED 5 2013-05-01
4 eric GREEN 2 2013-05-02
5 eric BLUE 2 2013-05-02
6 john RED 3 2013-05-02
7 henry GREEN 2 2013-05-02
8 eric RED 3 2013-05-03
9 john BLUE 5 2013-05-03
我想查询给我回复以下数据
category 2013-05-01 2013-05-02 2013-05-03
---------------------------------------------------
RED 9 3 3
BLUE 3 2 5
GREEN 0 4 0
我可以使用以下查询获得一列数据,但我不知道如何将多列分组,如上所示。我希望我的PHP呈现一个查询,而不是遍历每个日期。
SELECT category, SUM(count)
FROM dbtable
WHERE date='2013-05-01'
GROUP BY category;
这可能吗?想法?
答案 0 :(得分:0)
这样的事情应该有效:
SELECT
category,
SUM(CASE WHEN date = '2013-05-01' THEN count END) AS `2013-05-01`,
SUM(CASE WHEN date = '2013-05-02' THEN count END) AS `2013-05-02`,
SUM(CASE WHEN date = '2013-05-03' THEN count END) AS `2013-05-03`
FROM dbtable
GROUP BY category