我一直在环顾四周,无法找到这个问题的答案,找到一个独特的匹配。我有一张看起来像
的桌子ID Category Relevancy 192820 273003000 2 242567 273003000 2 510711 273003000 2 510711 273003002 34 542178 273003000 1 542178 273003002 2 688833 273003000 3 734917 273003002 2 888879 273003000 1 891624 273003002 3
因此,对于每个id,它们可以具有多个类别,并且相关性是什么类别编号(1是第一类别,2秒,34是该id的第三十四类别)。
我想查询我可以搜索类别计数的位置,但如果已经计算了某个类别的ID,则不会对其进行计数。
因此,答案如下:
Category Count 273003000 6 273003002 2
感谢您的帮助!!
答案 0 :(得分:3)
听起来您只想计算每个Relevancy
最少ID
的记录。因此,您可以执行(SQL Fiddle example):
SELECT Category, COUNT(1)
FROM Table1 t1
WHERE NOT EXISTS
(
SELECT 1
FROM Table1 t2
WHERE t2.ID = t1.ID
AND t2.Relevancy < t1.Relevancy
)
GROUP BY Category
答案 1 :(得分:0)
这应该可以解决问题,因为您不关心相关性值本身,而只关心计数:
select a.category, count(a.relevancy) as count
from (select *
from test
group by id) as a
group by a.category;