gpt4 book ai didi

SQL 返回最小值按 groupby 和比率

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

一个 SQL 问题:我有一个表 game带列user_id (每个用户唯一),game_id (每场比赛唯一),game_start_timestamp_utc (游戏开始时的 UTC 时间戳)和 game_status , 可以是“通过”、“进行中”或“失败”。
问题是写一个查询返回通过率最低的游戏(通过用户/注册用户)。
table 应该是这样的

user_id game_id game_start_timestamp_utc game_status
-----------------------------------------------------
1 111 10/22/2019 pass
2 111 10/21/2018 fail
...
我知道如何在 Python pandas 中做到这一点,只需要 group by game_id计算通过率,但没有太多想法用SQL来做。提前致谢。

最佳答案

使用条件聚合。 avg()派上用场:

select game_id, 
avg(case when game_status = 'pass' then 1.0 else 0 end) as pass_rate
from game
group by game_id
order by pass_rate
这为您提供了每场比赛的通过率,作为 0 到 1 之间的值,按增加率排序 - 所以第一行是您想要的结果。
您只能使用行限制子句保留该行。语法因数据库而异: limit 1 , top (1) , fetch first row , ...

关于SQL 返回最小值按 groupby 和比率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64600720/

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