【发布时间】:2022-01-04 12:57:17
【问题描述】:
我是使用 SQL 的新手,不知道如何解决以下问题:
想象一下我得到了这张桌子
User_ID | Operating System | LastSeen (containing some timestamps)
1 | IOS | hh:mm:ss
1 | AOS | hh:mm:ss
1 | Unknown | hh:mm:ss
2 | IOS | hh:mm:ss
2 | Unkown | hh:mm:ss
3 | AOS | hh:mm:ss
用户 ID 与操作系统结合可以是主键,并且在每一行中都是唯一的
我想获得一个用户表(因此我想通过 User_ID 使用组)为我提供最新的 LastSeen 值(使用 Max(LastSeen))以及用于 usesAndroid 和 usesIOS 的布尔值。
所以结果应该是这样的
User ID | Using_IOS | USING_AOS | LastSeen containing Max(LastSeen)
1 | True | True | hh:mm:ss
2 | True | False | hh:mm:ss
3 | False | True | hh:mm:ss
关于 Using_IOS/Using_AOS 列,我不知道如何将它们放在一个组中,我可以在 GroupBy 中使用 sth 之类的 contains 或函数中包含多个不同值的列吗?
提前致谢!
【问题讨论】:
-
同一个用户ID有IOS和AOS是什么意思,按UserID分组的时候怎么看?请包括所需的结果!
-
是的,很遗憾我在正确表达我的问题方面不是最好的,编辑是否回答了您的问题? :'D
-
如
sql标签的描述中所示,请TAG您的RDBMS
标签: sql group-by boolean aggregation contains