你好,我有这个表:
id | user_id | status
1 | 34 | x
2 | 35 | x
3 | 42 | x
4 | 42 | y
我的目标是计算状态为X的数据,除非用户有另一个状态为Y的数据,否则它将被排除在计算之外。因此,它将只计算2,而不是3,因为第3行有另一个状态为Y的数据,这是第4行。
SELECT * FROM logs
AND user_id NOT IN (SELECT user_id FROM logs WHERE status = 'y')
GROUP BY user_id;
3条答案
按热度按时间dtcbnfnu1#
我们可以尝试以下聚合方法:
上述逻辑仅对具有一个或多个状态仅为x的记录的用户进行计数。
of1yzvn42#
你可以这样做,我只在你sql上修改一点
unhi4e5o3#
可以使用内部联接: