SQL不同的行和计数

时间:2012-12-07 09:49:55

标签: sql count row distinct

我有一张这样的表:

Id  CookieId
--------------------------------
4   13ab1dc1bac-ef74565ea9ff5ba8
4   13b474728b3-6cf7bf445e311c59
4   13b474728b3-6cf7bf445e311c59
4   13a1b545ebf-20c86b23c91ad2c5
4   13a1b545ebf-20c86b23c91ad2c5

结果应该只是不同的行:

Id  CookieId
--------------------------------
4   13ab1dc1bac-ef74565ea9ff5ba8
4   13b474728b3-6cf7bf445e311c59
4   13a1b545ebf-20c86b23c91ad2c5

如果我能得到行数,那么更多的话也会很好。

Id      count(CookieId)
-----------------------
4       3

我如何实现这两个结果?

5 个答案:

答案 0 :(得分:3)

要获得结果中的唯一记录,请使用以下命令:

SELECT DISTINCT ID, CookieId
FROM Table1

结果:

| ID |                     COOKIEID |
-------------------------------------
|  4 | 13ab1dc1bac-ef74565ea9ff5ba8 |
|  4 | 13b474728b3-6cf7bf445e311c59 |
|  4 | 13a1b545ebf-20c86b23c91ad2c5 |

要在CookieId函数中计算唯一DISTINCT使用COUNT,请执行以下操作:

SELECT ID, COUNT(DISTINCT CookieId) AS `COUNT`
FROM Table1
GROUP BY ID

结果:

| ID | COUNT |
--------------
|  4 |     3 |

See this SQLFiddle

答案 1 :(得分:2)

首先选择不同的值使用

SELECT DISTINCT CookieId, Id 
FROM YourTable;
GO

这只能起作用,因为您在两列中有重复项。要获得这些值的计数,请使用

SELECT Id, COUNT(DISTINCT CookieId)
FROM YourTable;
GROUP BY Id;
GO

我希望这会有所帮助。

答案 2 :(得分:1)

您可以尝试此查询

select Id,count(CookieId) from table_name group by CookieId;

答案 3 :(得分:0)

select Id, CookieId, count(1) as Amount
from Table1 group by Id, CookieId

答案 4 :(得分:0)

    SELECT  DISTINCT(`CookieId`),Id, COUNT(CookieId) FROM
 `tablename` GROUP BY `CookieId`