有一个数据集,假设是一对一映射。
例如,
userId, deviceId
aaa, 12345
bbb, 22398
ccc, 43284
但是,在某些情况下,一个deviceId具有许多userId。
userId, deviceId
ddd, 12094
eee, 12094
fff, 12094
ggg, 459834
hhh, 459834
iii, 459834
jjj, 459834
什么SQL只能列出那些一对多的条目?
想象一下,有很多一对多的条目。我不需要在结果中进行1对1的输入。因此,我希望看到的结果是
deviceId, _cnt
12094, 3
459834, 4
最佳答案
嗨,您可以COUNT个,然后过滤那些COUNT大于1的那些:
SELECT deviceId
, COUNT(DISTINCT userId) AS uct
, COUNT(userId) AS ct
FROM table
GROUP BY deviceId
HAVING ct > 1
AND uct > 1
关于sql - 如何找出一对多输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45499885/