gpt4 book ai didi

mysql - SQL 二进制出现列(如果用户玩过)

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

我有以下格式的数据

|user_id|week_id|betId|
|1|1|...|
|1|1|...|
|1|3|...|
|2|2|...|
|2|3|...|

这些是投注​​单,用户可以在每个比赛周进行多次投注。我想转换这些数据,以便我有一个二进制列,用于指示用户每周是否下注,因此根据我的示例,它将是:

|week_id|user_id|did_play|
|1|1|1|
|1|2|0|
|2|1|0|
|2|2|1|
|3|1|1|
|3|2|1|

有人可以解释一下 SQL 查询是什么样的吗

我目前已成功使用以下方法获取每个用户每周游戏的计数:

SELECT user_id, week_id, count(user_id)
FROM game_slips
GROUP by week_id, user_id

我只想将计数转换为已玩/未玩的二进制列

最佳答案

您可以使用交叉联接生成所有行,然后转换为 bool 值:

select u.userId, w.weekId, (count(t.userId) > 0) as did_play
from (select distinct userId from t) u cross join
(select distinct weekId from t) w left join
t
on t.userId = u.userId and t.weekId = u.weekId
group by u.userId, w.weekId

关于mysql - SQL 二进制出现列(如果用户玩过),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47753844/

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