sql如何基于另一列的值标记给定的sessionid

ef1yzkbh  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(210)

请原谅,我不太熟悉sql来完成下面的工作。但如果可能的话,我很想学习如何去做。
我只有一个表:表名sessiontracker

-----------------------------------------------------------------------------------------------------------------------------------

bundleID                   | sessionId |                  deviceID |                                   eventType |          codeValue 

------------------------------------------------------------------------------------------------------------------------------------

com.package.random          3871207406642403679         333333-00000-0000-00000-000000000000000       REQUEST                1
com.package.random          3871207406642403679         333333-00000-0000-00000-000000000000000       EVENT                  1
com.package.random          3871207406642403679         333333-00000-0000-00000-000000000000000       RESPONSE               1
com.package.random          3245233406642403679         000000-00000-0000-00000-000000000000000       REQUEST                1
com.package.random          3245233406642403679         000000-00000-0000-00000-000000000000000       EVENT                  2
com.package.random          3245233406642403679         000000-00000-0000-00000-000000000000000       RESPONSE               2
com.package.random          871207406643e243433         000000-00000-0000-00000-000000000000000       REQUEST                1
com.package.random2         3243254325454535422         111111-00000-0000-00000-000000000000000       REQUEST                1
com.package.random3         4353453452525252465         222222-00000-0000-00000-000000000000000       REQUEST                1
com.package.random4         3453656456353252345         111111-00000-0000-00000-000000000000000       REQUEST                1
com.package.random5         4567568765745634563         111111-00000-0000-00000-000000000000000       REQUEST                1

我想去

Select all the sessions where the codeValue was different within that session.

从上面的例子来看:
我想检查由请求、事件和响应组成的会话是否在每个会话中有不同的值。与上面的sessionid(3871207406642403679)一样,每个sessionid中的代码值都是1,因此不会对此进行标记。
第二个sessionid(3245233406642403679)请求、事件和响应之一中的代码值为event和response的代码值2,因此将对此进行标记。
我希望databricks中的查询能起作用,这可能吗?

iovurdzv

iovurdzv1#

在sql中,可以使用聚合和 having 条款:

select sessionId
from mytable
group by sessionId
having min(codeValue) <> max(codeValue)

这给了你一切 sessionId 至少有两个不同的 codeValue s。

相关问题