Mysql 按类型和日期列出的计数值和分组
我有这张桌子 (日期格式:年月日) 在mysql中创建视图并使其成为这样的查询是什么(按买家、状态分组,并计算每月交付/取消价值的数量)Mysql 按类型和日期列出的计数值和分组,mysql,Mysql,我有这张桌子 (日期格式:年月日) 在mysql中创建视图并使其成为这样的查询是什么(按买家、状态分组,并计算每月交付/取消价值的数量) 您可以在count中设置条件来区分月份: SELECT t.buyer, t.status, COUNT(IF(MONTH(t.date) = 1, 1, NULL)) AS jan, COUNT(IF(MONTH(t.date) = 2, 1, NULL)) AS feb FROM TABLE AS t GROUP
您可以在
count
中设置条件来区分月份:
SELECT t.buyer,
t.status,
COUNT(IF(MONTH(t.date) = 1, 1, NULL)) AS jan,
COUNT(IF(MONTH(t.date) = 2, 1, NULL)) AS feb
FROM TABLE AS t
GROUP BY buyer,
status;
查找数据透视表。
日期格式:dd/mm/yyyy)
因此请修复该问题。关系数据库的效率伴随着数据类型的正确使用。然后,对于下一部分,考虑应用程序代码中的数据显示问题,以及如果我在将来添加更多的数据,例如,直到2021,并确保该查询不会同时计算2020年和2021年的1月?您可以简单地在IF函数中添加更多的条件,您能给我一个例子,我应该在IF函数中设置年份和月份吗?已在stackoverflow上搜索,但找不到正确的关键字
+ buyer + status + january + february +
+----------+-----------+-----------+------------+
+ AAA + delivered + 1 + 2 +
+ AAA + cancelled + 1 + 1 +
+ BBB + delivered + 2 + 0 +
+ BBB + cancelled + 0 + 0 +
+----------+-----------+-----------+------------+
SELECT t.buyer,
t.status,
COUNT(IF(MONTH(t.date) = 1, 1, NULL)) AS jan,
COUNT(IF(MONTH(t.date) = 2, 1, NULL)) AS feb
FROM TABLE AS t
GROUP BY buyer,
status;