gpt4 book ai didi

mysql - MySQL 中的累计计数 (*)

转载 作者:行者123 更新时间:2023-11-29 01:20:46 25 4
gpt4 key购买 nike

想象一个 SQL 表 votes,有两列 votetimevote 是一个字符串,time 是一个时间戳。我想从表中检索“累计计数”。所以,表格看起来像这样:

vote       | time
-----------+----------------
stuart | 1443000000
stuart | 1443000000
bryan | 1443000000
stuart | 1443000001
bryan | 1443000001
bryan | 1443000002
bryan | 1443000002

因此,“stuart”在第一个时间间隔内获得两票,而“bryan”获得一票;他们在第二个间隔中各得到一个,而 bryan 在第三个间隔中又得到两个,因此我想要的输出结果是:

vote       | time         | cumulative total
-----------+--------------+-----------------
stuart | 1443000000 | 2
bryan | 1443000000 | 1
stuart | 1443000001 | 3
bryan | 1443000001 | 2
stuart | 1443000002 | 3
bryan | 1443000002 | 4

我不知道该怎么做。显然,获取每个时间间隔内发生的投票数是微不足道的(SELECT vote, time, COUNT(*) from table GROUP BY time, vote ORDER BY time, vote)但是累积 计数似乎更难。有办法吗?

(我正在使用 MySQL,如果有用的话,我很乐意在这里使用 MySQL 特定的函数。)

最佳答案

使用相关子查询进行计数:

select distinct vote, time, (select count(*) from table t2
where t2.vote = t1.vote
and t2.time <= t1.time)
from table t1

关于mysql - MySQL 中的累计计数 (*),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32735294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com