gpt4 book ai didi

sql-server - SQL Server : Rank by sum of points and order by ranking

转载 作者:行者123 更新时间:2023-12-02 18:17:02 25 4
gpt4 key购买 nike

我有一个包含以下字段的游戏 table :

ID    Name       Email      Points
----------------------------------
1 John john@aaa.com 120
2 Test bob@aaa.com 100
3 John john@bbb.com 80
4 Bob bob@aaa.com 50
5 John john@aaa.com 80

我想通过电子邮件对它们进行分组(电子邮件表明无论第 2 行和第 4 行有不同的名称,两个玩家都是相同的),并且还具有分数总和以及结果中最后输入的名称,并将它们排名最高分数总和为最低

我想要从示例表中得到的结果是:

Ranking     Name       Points   Games_Played      Average_Points 
------------------------------------------------------------------------------------------
1 John 200 2 100
2 Bob 150 2 75
3 John 80 1 80

我可以获取排名、总分和平均分,但获取最后输入的名称我认为需要再次加入同一张表,这似乎有点错误。

有什么想法可以做到这一点吗?

最佳答案

通过电子邮件显示名称和分组将导致使用例如MIN(Name) 并导致重复名称。

Select Rank() over (order by Points desc) as Rank
,Name,Points,Games_Played,Average_Points
from
(
Select Min(Name) as Name,Email,Sum(Points) as Points
,Count(*) as Games_Played,AVG(Points) as Average_Points
From @a Group by Email
) a
order by Rank

SQLFiddle

在 fiddle 中有两行注释,您应该取消注释才能看到相同结果的行为。

关于sql-server - SQL Server : Rank by sum of points and order by ranking,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17265181/

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