表:
+-------------+
| izvajalecID |
+-------------+
| 20 |
| 21 |
| 21 |
| 20 |
| 21 |
+-------------+
我想计算所有唯一ID并打印它们的值。
例如:
唯一ID: 2 值: 20,21
我尝试了以下查询。 Count工作正常,但它只返回一个(第一个)值。我做错了什么?
SELECT COUNT(distinct izvajalecID), s.izvajalecID FROM (SELECT izvajalecID FROM servis) s;
答案 0 :(得分:2)
SELECT
izvajalecID
FROM
servis
GROUP BY
izvajalecID
UNION
SELECT
COUNT(DISTINCT izvajalecID)
FROM
servis
集合中的最后一个值是COUNT个唯一值。您也可以更改它们的位置,它将是第一个值,就像您希望的那样。
答案 1 :(得分:0)
试试这个:
SELECT izvajalecID, COUNT(DISTINCT izvajalecID) as COUNT
FROM servis
GROUP BY izvajalecID
结果:
IZVAJALECID COUNT
20 1
21 1
请参阅SQL Fiddle中的结果。
答案 2 :(得分:0)
SELECT COUNT(DISTINCT izvajalecID) AS COUNT, GROUP_CONCAT(DISTINCT izvajalecID) AS ID
FROM servis
答案 3 :(得分:0)
如果你想要uniq id的计数并获得uniq Ids的列表,你需要两个查询。
一个可以计算
SELECT COUNT(distinct izvajalecID) FROM servis GROUP BY izvajalecID;
一个人拿到名单。
SELECT distinct izvajalecID FROM servis GROUP BY izvajalecID;