我有一个表,它存储的数据分别对应于一个唯一的id,该id聚集了多个记录,使其成为组的一部分。我想检查该组中是否存在某列的值,而不是其他列的值。我尝试了GROUPBY子句,where子句,但没有得到预期的记录。任何帮助都将不胜感激。
id Group receiver sender sender_role
1 a Val1 Val2 Guest
2 a Val1 Val2 Guest
3 b Val3 Val4 CC
4 b Val4 Val3 Guest
5 b Val4 Val3 Guest
6 c Val5 Val6 Guest
在上表中,我需要对聊天进行分组,并在该组中找到一个名称应该存在于receiver中,而不是sender中。
例如,在组a中查找val1,因此它与处于接收方而不是发送方的条件相匹配。
1 a Val1 Val2 Guest
2 a Val1 Val2 Guest
例如,在组b中查找val3,因此它与条件不匹配,因为val3同时存在于接收器和发送器中。
3 b Val3 Val4 CC
4 b Val4 Val3 Guest
5 b Val4 Val3 Guest
例如,在c组中查找val5,因此它与条件匹配,因为val5存在于接收器中,而不存在于发送器中。
6 c Val5 Val6 Guest.
3条答案
按热度按时间fsi0uk1n1#
一种简单的方法是使用条件聚合来Assert条件:
顺便说一句,不要给你的专栏命名
Group
,否则每次使用该列名时都必须用反勾号将其括起来。kmynzznz2#
sqlfiddle演示
6xfqseft3#
我想你在找这样的东西:
这是你的第一个条件。其余的都差不多。