MySQL 按日期分组 DATE_FORMAT() 函数

标签 mysql sql

我有以下查询:

SELECT DATE_FORMAT(order_completed, "%c/%Y") AS Month, COUNT(*) AS Total_Transactions, SUM(order_total_grand) as Total_Spend FROM `shop_orders` GROUP BY DATE_FORMAT(order_completed, "%c/%Y") DESC

输出下表:

Table

如何正确地按日期对表格进行排序?

最佳答案

不要按日期的字符串版本排序。按原始日期排序:

SELECT DATE_FORMAT(order_completed, "%c/%Y") AS Month, COUNT(*) AS Total_Transactions,
       SUM(order_total_grand) as Total_Spend
FROM shop_orders
GROUP BY DATE_FORMAT(order_completed, "%c/%Y")
ORDER BY MIN(order_completed) DESC;

字符串按字符串排序,而不是日期。

关于MySQL 按日期分组 DATE_FORMAT() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47034059/

相关文章:

sql - 为什么不能添加这个外键?

php - Mysql查询多个字段值

java - 如何解决java.lang.ClassNotFoundException : com. mysql.jdbc.Driver

mysql - 在世界表上使用 UNION 查询出现重复列名错误

sql - SQL 中 WHERE 子句中的 LIKE 和 NULL

sql - 查找仅与两个值之一匹配的行

MySQL 查找每个邮政编码中最贵的

python - 基于列表过滤查询集,包括 None

sql - PostgreSQL为所有用户获取最新的行/事件

mysql - SUM 函数添加记录两次