gpt4 book ai didi

mysql - SQL聚合查询

转载 作者:可可西里 更新时间:2023-11-01 08:34:17 25 4
gpt4 key购买 nike

我有一个数据集,我需要对其进行一些聚合才能显示。

Date,     Rank, Vote

07/20/2013, 8, -1
07/21/2013, 8, -1
07/23/2013, 7, -1
07/24/2013, 6, 1
07/25/2013, 7, 1
07/26/2013, 7, -1
07/27/2013, 8, 1
07/28/2013, 8, 1
07/29/2013, 8, -1

我想按连续排名分组,对投票进行汇总,然后选择分组日期中的第一个。上述数据集将返回:

07/20/2013,8,-2
07/23/2013,7,-1
07/24/2013,6,1
07/25/2013,7,0
07/27/2013,8,1

我的第一个想法是 GROUP BY Date and Rank 但这不会合并多天。我可以在事后通过遍历数据来执行此操作,也可以在存储过程中使用游标,但我很好奇是否有更简单的 SQL 查询方法。

最佳答案

这样做:

SELECT firstDate, Rank, SUM(vote) Votes
FROM (
SELECT @first_date := CASE WHEN Rank = @prev_rank
THEN @first_date
ELSE Date
END firstDate,
@prev_rank := Rank curRank,
data.*
FROM (SELECT @first_date := NULL, @prev_rank := NULL) init
JOIN (SELECT Date, Rank, Vote
FROM MyTable
Order by Date) data
) grouped
GROUP BY firstDate, Rank

SQLFIDDLE

关于mysql - SQL聚合查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17886292/

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