我正在使用的 mysql 表有一个结构:
id | type | date
--------------------------------
101 | 1 | 2011-02-08
102 | 2 | 2011-02-08
103 | 2 | 2011-02-08
104 | 2 | 2011-02-07
105 | 1 | 2011-02-07
105 | 1 | 2011-02-07
我想要做的是创建一个查询,该查询将给出以下结果:
total type 1 | total type 2 | date
------------------------------------------------
1 | 2 | 2011-02-08
2 | 1 | 2011-02-07
我尝试了以下查询,但没有得到所需的结果
SELECT count(DISTINCT id) as total, date, type FROM my_table WHERE type !='0' GROUP BY date, type ORDER BY date DESC
我怎样才能做到这一点? 感谢大家的建议
最佳答案
用途:
SELECT t.date,
SUM(CASE WHEN t.type = 1 THEN 1 ELSE 0 END) AS total_type_1,
SUM(CASE WHEN t.type = 2 THEN 1 ELSE 0 END) AS total_type_2
FROM YOUR_TABLE t
WHERE t.type != 0
GROUP BY t.date
ORDER BY t.date DESC
我假设 type
列是数字,而不是像单引号所示的基于字符串。如果情况并非如此,请进行更改以适应。
关于sql - Mysql查询以便更好地排序结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4938695/