假设我们有一张桌子:

Music track    Name
==             ====
1              A
2              A
3              B
3              C
3              D
4              C
5              E
5              F
6              E
6              F
..             ..


我想选择所有收听相同且仅相同音轨的姓名。结果应为:

Name
====
B (listens track 3 and only track 3)
D (listens track 3 and only track 3)
E (listens tracks 5, 6 and only tracks 5,6)
F (listens tracks 5,6 and only tracks 5,6)
..

最佳答案

在MySQL中,我将使用两个聚合级别来做到这一点:

select tracks, group_concat(name) as names
from (select name, group_concat(track order by track) as tracks
      from t
      group by name
     ) n
group by tracks;


这将列出数据中的每个跟踪组合以及与该列表相关联的用户。

关于mysql - SQL,仅相同选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43527814/

10-14 05:19