数据库选择 - 逻辑崩溃

时间:2011-09-17 23:31:49

标签: sql database

我一直在努力解决这个问题 [样本表]

ITEM  GROUP
----  -----
4     A
7     A
3     A
8     A
7     B
6     B
9     B
0     C
4     C
2     C
5     C
4     C
7     C
5     D
9     D
2     E
7     E
1     E
4     E
7     F
3     F
9     F
6     F
8     G
4     H
5     H
3     H
9     H
0     H
8     H

我需要一个sql查询,它会告诉我在一系列SELECT DISTINCT ITEM中,每个“ITEM”出现了多少次在一个特定的组中相互出现。

IE: 项目4和8出现2次(A组和H组)。 项目0和4出现2次(组C和H)。 项目7,6和9出现2次(B组和F组)。 ..并做。可以忽略仅出现在一个组中的“流氓”项目。

可以吗?感谢

1 个答案:

答案 0 :(得分:2)

这适用于成对的项目:

SELECT T1.item, T2.item, COUNT(*)
FROM yourTable T1
JOIN yourTable T2
ON T1.item < T2.item
AND T1.group = T2.group
GROUP BY T1.item, T2.item