gpt4 book ai didi

mysql - 按累积列值对 mysql 结果进行分组

转载 作者:行者123 更新时间:2023-11-29 07:24:54 25 4
gpt4 key购买 nike

我有一个数据库表events 和一个表bets。针对特定赛事的所有投注均位于bets 表中,而有关赛事的信息则存储在events 表中。

假设我有这些表:

events table:
id event_title
1 Call of Duty Finals
2 DOTA 2 Semi-Finals
3 GTA V Air Race


bets table:
id event_id amount
1 1 $10
1 2 $50
1 2 $100
1 3 $25
1 3 $25
1 3 $25

我希望能够按受欢迎程度(即该赛事的下注数量)和奖品(即该赛事的总金额)进行排序。

按奖品排序

显然这个查询不起作用,但我想做这样的事情:

SELECT * FROM bets GROUP BY event_id SORT BY amount
上述查询中的

amount 应该是该 event_id 的所有投注金额加在一起的累积值,因此此查询将返回

Array (
[0]=>Array(
'event_id'=>2
'amount'=>$150
)

[1]=>Array(
'event_id'=>3
'amount'=>$75
)
[2]=>Array(
'event_id'=>1
'amount'=>$10
)
)

按受欢迎程度排序

显然这个查询也不起作用,但我想做这样的事情:

SELECT * FROM bets GROUP BY event_id SORT BY total_rows
上面查询中的

total_rows 应该是 bets 表中存在的行数加在一起,因此此查询将返回

Array (
[0]=>Array(
'event_id'=>3
'total_rows'=>3
)

[1]=>Array(
'event_id'=>2
'total_rows'=>2
)
[2]=>Array(
'event_id'=>1
'total_rows'=>1
)
)

我不一定需要它返回 total_rows 值,因为我可以计算该值,但它确实需要按特定 event_id 的出现次数进行排序> 在赌注表中。

最佳答案

我认为 count 和 sum 是你的 friend :

SELECT COUNT(event_id) AS NumberBets, 
SUM(amount) AS TotalPrize
FROM bets
GROUP BY event_id

应该可以解决问题。然后您可以根据需要按投注数(受欢迎程度)或总奖金进行排序。仅当您想要事件标题时才需要加入。

关于mysql - 按累积列值对 mysql 结果进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34867721/

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