gpt4 book ai didi

sql - 计算行和列中值的频率 SQL

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

我有一个 SQLite 数据库,我正在尝试计算列中值的出现次数以及相应行中的值。

我的数据集是:

participant_id  game_id      win   selected_champion

2 3640481414 0 Yasuo
7 3643429174 0 Gangplank
10 3643470467 1 Jhin
5 3643669725 0 Rammus
10 3643707347 1 Talon
10 3644255324 1 Sivir
5 3644305477 1 Sion
8 3644626709 1 Shaco
5 3645020045 1 Warwick
10 3645063546 0 Jhin

预期的输出是这样的

selected_champion   games_played  games_won

Gangplank 1 1
Jhin 2 1
Rammus 1 0

我能够通过查询获得玩过的游戏数量

SELECT 
selected_champion,
count(selected_champion) as 'games_played'
FROM (myTable) GROUP BY selected_champion

但我似乎想不通如何计算win = 1与冠军相比的次数。

最佳答案

您可以进行条件聚合:

select 
selected_champion,
count(*) games_played,
sum(win) games_won
from mytable
group by selected_champion

这是有效的,因为 win 只包含 01。如果它是一个像 'won', 'lost' 这样的字符串,你会这样做:

select 
selected_champion,
count(*) games_played,
sum(win = 'won') games_won
from mytable
group by selected_champion

旁注:不要对标识符使用单引号。尽管某些数据库可能接受它,但单引号应仅保留用于文字字符串。为您的数据库使用正确的引号字符(在 SQLite 中,双引号是首选),或者更好的是使用不需要引号的标识符。

关于sql - 计算行和列中值的频率 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61903349/

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