两列的区别不同

时间:2013-09-06 17:57:21

标签: mysql sql count distinct

我一直在环顾四周,无法找到这个问题的答案,找到一个独特的匹配。我有一张看起来像

的桌子
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

感谢您的帮助!!

2 个答案:

答案 0 :(得分:1)

如果该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

答案 1 :(得分:0)

你需要这样GROUP BY: -

select Category, COUNT(*) as Count
from YourTable
GROUP BY Category;

SQLFIDDLE