【发布时间】:2020-08-08 10:13:06
【问题描述】:
我有这个 MYSQL 查询,用于在其关联表 members 中查找表 groups 随时间推移的累积增长。
SELECT DISTINCT g.name, m.created_at,
COUNT(*) OVER(PARTITION by g.id ORDER BY m.created_at) count
FROM members m
INNER JOIN groups g on g.id = m.group_id
这给出了如下结果集:
[
{ 'group01', date: '2019-03-04', count: 5 },
{ 'group01', date: '2019-03-09', count: 12 }
{ 'group01', date: '2019-03-15', count: 23 }
{ 'group02', date: '2019-03-04', count: 3 }
{ 'group01', date: '2019-03-10', count: 19 }
{ 'group01', date: '2019-03-17', count: 27 }
]
我还将检索组成员的总数。这样数据集将如下所示:
[
{ name: 'group01', date: '2019-03-04', count: 5, total: 23 },
{ name: 'group01', date: '2019-03-09', count: 12, total: 23 },
{ name: 'group01', date: '2019-03-15', count: 23, total: 23 },
{ name: 'group02', date: '2019-03-04', count: 3, total: 27 },
{ name: 'group02', date: '2019-03-10', count: 19, total: 27 },
{ name: 'group02', date: '2019-03-17', count: 27, total: 27 }
]
我需要这样做,以便稍后我可以轻松订购并找到成员数量最多的组。
有没有办法做到这一点?
【问题讨论】:
-
请向我们展示您目前的结果,以及您想要的结果。
标签: mysql sql database sum window-functions