我在 MySQL db 中有一个表'C',其结构如下:
Object1Id (int) - PK并且与表“A”具有一对多关系,
Object2Id (int) - PK并且与表“A”有一对多的关系,
OccuranceId (int) - FK并且与表“B”具有一对多的关系。
基本上,表“C”与表“A”具有多对多关系,与表“B”具有一对多关系。
数据:
1, 3, 1
1, 3, 39
3, 1, 402
3, 1, 27
1, 3, 40
3, 1, 12
我尝试使用查询对记录进行分组:
SELECT CASE WHEN least(Object1Id, Object2Id) = Object1Id THEN Object1Id ELSE Object2Id END AS Object1Id,
CASE WHEN Greatest(Object1Id, Object2Id) = Object2Id THEN Object2Id ELSE Object1Id END AS Object2Id,
count(OccuranceId) AS OccuranceCount
FROM 'C'
GROUP BY Object1Id, Object2Id
我从查询中得到的结果是:
1、3、3 - 对于 object1Id = 1 和 Object2Id = 3
1、3、3 - 对于 Object1Id = 3 和 Object2Id = 1
我希望结果总结为:1、3、6
我怎样才能产生想要的结果?
谢谢。