gpt4 book ai didi

mysql - 在 MySQL 中将表汇总并拆分为不同的表

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

所以我有这个表格,如下所示:

user_id  location  duration(s)
------- -------- -----------
1 room1 75
2 room1 289
1 room2 630
1 room1 287

上表显示了用户在房间中呆了多长时间,行数表示用户在特定房间中呆了多少次。例如,在上面的数据中,有 2 行用户 1 位于 room1,这意味着他已经在 room1 两次。我将如何将这些数据转换成下表:

user_id  room_1_freq  room_1_duration  room_2_freq  room_2_duration
------- ----------- --------------- ----------- ---------------
1 2 181 1 630
2 1 289 0 0

其中 room_1_freq 和 room_2_freq 是用户进入各个房间的次数,room_1_duration 和 room_2_duration 是用户在每个房间中花费的平均时间。这可以在单个查询中完成吗?

最佳答案

如果我理解正确的话,这只是条件聚合:

select user_id,
sum(location = 'room1') as room1_freq,
sum(case when location = 'room1' then duration else 0 end) as room1_dur,
sum(location = 'room2') as room2_freq,
sum(case when location = 'room2' then duration else 0 end) as room1_dur
from t
group by user_id;

关于mysql - 在 MySQL 中将表汇总并拆分为不同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50667443/

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