2014-12-11 104 views

回答

1

尝试此查询..

SELECT YourColumn, COUNT(*) TotalCount 
    FROM YourTable 
    GROUP BY YourColumn 
    HAVING COUNT(*) > 1 
    ORDER BY COUNT(*) DESC 
+0

我认为只会在列中找到重复项。我需要在一列中显示唯一的tags_id,然后在另一列中分配序列号的数量。 – PBJu 2014-12-11 05:17:00

0

什么Dyrandz了,但你要求计算每标签ID序列号的数量相似。

DECLARE @YourTable AS TABLE (
    tag_id  INT, 
    serial_no VARCHAR(100) 
) 

INSERT INTO @YourTable (tag_id, serial_no) 
VALUES (1, 'abc'), (2, 'cde'), (3, 'def'), (1, 'xyz'), (3, 'lmn') 


SELECT tag_id, COUNT(serial_no) AS TotalSerialNumbers 
FROM @YourTable 
GROUP BY tag_id 
ORDER BY 2 DESC 
+0

我认为这将工作,但我得到一个SQL0440N错误(没有授权例程名为“COUNT”类型“FUNCTION”具有兼容的参数被发现)。我需要使用CAST转换序列号字段。我试过了 - 选择tag_id,count(将serial_number转换为整数) - 但没有奏效。有任何想法吗? – PBJu 2014-12-11 14:56:07

+0

得到它的工作。我只是用COUNT(1)替换了COUNT(serial_no)。它忽略列的名称并返回所需的输出。感谢你们两位,穆斯先生和Dyrandz。 – PBJu 2014-12-11 16:55:22