在SQL中计数“唯一”重复项
我对SQL很陌生 当我有这样的清单时在SQL中计数“唯一”重复项,sql,Sql,我对SQL很陌生 当我有这样的清单时 +----+------+ | id | name | +----+------+ | 1 | Mike | +----+------+ | 1 | Mike | +----+------+ | 2 | Mike | +----+------+ | 2 | Mike | +----+------+ | 2 | Mike | +----+------+ | 5 | Sam | +----+------+ | 6 | Sam | +----+-
+----+------+
| id | name |
+----+------+
| 1 | Mike |
+----+------+
| 1 | Mike |
+----+------+
| 2 | Mike |
+----+------+
| 2 | Mike |
+----+------+
| 2 | Mike |
+----+------+
| 5 | Sam |
+----+------+
| 6 | Sam |
+----+------+
| 7 | Sam |
+----+------+
| 7 | Sam |
+----+------+
我想数一数有多少独特的话筒和SAM。因此,输出将是
+------+---+
| Mike | 2 |
+------+---+
| Sam | 3 |
+------+---+
我该怎么做
编辑:
这只是我问题的一个例子。代码类似于selectid,name FROM id,name WHERE某些条件
我尝试了一些东西,比如选择id,name,COUNT*From id,name,其中一些条件按id分组,name
输出不是我想要的。它只计算有多少麦克风和山姆。但我想知道有多少独特的话筒和SAM
SELECT name, COUNT(DISTINCT id) AS cnt
FROM mytable
GROUP BY name
HAVING COUNT(DISTINCT id) > 1
数据库服务器的语法可能会有所不同,但要点是相同的:计算每个名称的唯一ID值的数量,筛选具有多个ID值的名称
如果您的数据库服务器没有COUNT DISTINCT:
你试过写一篇精选的声明吗?对不起,我不知道你的意思。我是通过课程的Select语句得到的请发布Select语句尝试与GROUP BY一起选择,并与我们分享您的尝试。这个案例只是一个例子。它将是SELECT id,name FROM id,name WHERE某些条件为什么COUNTDISTINCT id>1?我假设,虽然示例中没有显示,但op提供的主题中建议了,但他在寻找重复项。这些将有一个大于1的COUNTDISTINCT id。啊,几乎就是这样!只是没有HAVING条款。我需要那种独特的,完全没有想到的。非常感谢你
SELECT name, COUNT(*) AS cnt
FROM (SELECT DISTINCT id, name
FROM mytable)
GROUP BY name
HAVING COUNT(*) > 1