我一直在四处寻找,但找不到关于寻找不同匹配项的问题的答案。我有一张看起来像
ID Category Relevancy
192820 273003000 2
242567 273003000 2
510711 273003000 2
510711 273003002 34
542178 273003000 1
551356 273003002 1
688833 273003000 3
734917 273003002 2
888879 273003000 1
891624 273003002 3
因此对于每个 id,它们可以有多个类别,相关性是什么类别编号(1 是第一个类别,2 第二个,34 是该 id 的第三十四个类别)。
我想查询在哪里可以搜索类别的计数,但如果该 id 已经被计入类别,则不会被计入。
所以对于这个答案看起来像:
Category Count
273003000 6
273003002 2
感谢您的帮助!
最佳答案
假设您从类别中排除一个 ID,如果该 ID 与具有较早 ID 的类别相关,则以下将起作用。从您的问题中不能完全清楚排除是如何工作的。如果您能澄清这一点,则可以调整查询
SELECT t1.category
,count(distinct t1.ID)
FROM table1 t1
WHERE NOT EXISTS
(SELECT 1
FROM table1 t2
WHERE t2.id = t1.id
AND t2.category < t1.category
)
GROUP BY
t1.category
这是 SQL Fiddle
关于mysql - 两列的不同计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18663808/