【发布时间】:2020-07-26 21:01:10
【问题描述】:
我想与已完成最大金额的用户一起打印每月的最大金额。我的表结构是
+--------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| customername | varchar(20) | YES | | NULL | |
| processed_at | date | YES | | NULL | |
| amount | int(11) | YES | | NULL | |
+--------------+-------------+------+-----+---------+-------+
和 每月打印最大总和的查询是
SELECT MAX(A.AMT), A.month
FROM ( SELECT customername,SUM(amount) AS AMT, EXTRACT( month from processed_at) as month
FROM payments
GROUP BY customername,month) AS A
GROUP BY 2;
这是给出结果
| MAX(A.AMT) | month |
+------------+-------+
| 1900 | 4 |
| 2400 | 3 |
有没有一种方法可以将客户名也映射到最大金额?
【问题讨论】:
-
您错误地标记了两个不同的 DBMS:Oracle 和 MySQL。您正在使用这两个中的哪一个以及确切的版本?
-
无论如何,这是这些标签下最常见的问题。
-
更新为 MySQL
-
您想显示每个客户每月的最大金额还是仅显示每个月?无论如何,您可以使用子查询来显示该月的最大客户价值。
-
哪个 MySQL 版本?
标签: mysql sql date group-by greatest-n-per-group