gpt4 book ai didi

SQL多行合二为一

转载 作者:行者123 更新时间:2023-11-29 12:37:30 24 4
gpt4 key购买 nike

这似乎是一件容易的事,但我似乎无法理解它。

我只需要找出每天使用移动设备的用户、使用桌面设备的用户以及同时使用两者的用户。每个 user/access_dt 组合应该只产生 1 行。

示例数据如下:

USER, ACCESS_DATE, FORMFACTOR
1 01-01-2014 Mobile
1 01-01-2014 Desktop
2 01-01-2014 Mobile
3 01-01-2014 Desktop

期望的输出:

USER, ACCESS_DATE, KEY_MOBILE, KEY_DESKTOP, KEY_MOBILE_DESKTOP
1 01-01-2014 1 1 1
2 01-01-2014 1 0 0
3 01-01-2014 0 1 0

非常感谢!

最佳答案

这基本上是一个数据透视查询。我会用条件聚合来做到这一点:

select user, access_date,
max(case when FORMFACTOR = 'Mobile' then 1 else 0 end) as KEY_MOBILE,
max(case when FORMFACTOR = 'Desktop' then 1 else 0 end) as KEY_DESKTOP,
(case when max(case when FORMFACTOR = 'Mobile' then 1 else 0 end) > 0 and
max(case when FORMFACTOR = 'Desktop' then 1 else 0 end) > 0
then 1 else 0
end) as KEY_MOBILE_DESKTOP
from table t
group by user, access_date;

关于SQL多行合二为一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25726013/

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