1

我有一张这样的桌子:

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

我怎样才能达到这两个结果?

4

5 回答 5

3

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

SELECT DISTINCT ID, CookieId
FROM Table1

结果:

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

要获得这样的函数内部唯一CookieId使用的计数:DISTINCTCOUNT

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

结果:

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

看到这个 SQLFiddle

于 2012-12-07T09:52:05.440 回答
2

首先选择不同的值使用

SELECT DISTINCT CookieId, Id 
FROM YourTable;
GO

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

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

我希望这有帮助。

于 2012-12-07T09:53:22.867 回答
1

你可以试试这个查询

select Id,count(CookieId) from table_name group by CookieId;
于 2012-12-07T09:52:13.990 回答
0
select Id, CookieId, count(1) as Amount
from Table1 group by Id, CookieId
于 2012-12-07T09:53:12.930 回答
0
    SELECT  DISTINCT(`CookieId`),Id, COUNT(CookieId) FROM
 `tablename` GROUP BY `CookieId`
于 2012-12-07T09:55:13.877 回答