我正在尝试识别名为name
的表的一列(brgy
)中每个不同值的计数。
---------------------
| ID | name |
---------------------
| 1 | Alfonso |
| 2 | Arakan |
| 3 | Poblacion |
| 4 | Ilaya |
| 5 | Poblacion |
----------------------
我尝试使用此代码,但是尽管COUNT
在1
列中出现了两次,但它仍将Poblacion
设为name
:
SELECT name,COUNT(name) AS distinct_name
FROM (
SELECT DISTINCT name
FROM brgy
GROUP BY name
)
GROUP BY name;
预期的输出应消除重复的name
,但总结不同的name
在name
列中出现的次数:
预期输出如下,
-----------------------------
| name | distinct_name |
-----------------------------
| Alfonso | 1 |
| Arakan | 1 |
| Ilaya | 1 |
| Poblacion | 2 |
-----------------------------
答案 0 :(得分:1)
一个简单的GROUP BY name
:
SELECT name, COUNT(name) AS distinct_name
FROM brgy
GROUP BY name;
您不需要子查询:
SELECT DISTINCT name FROM brgy GROUP BY name
因为GROUP BY name
会照顾它。
答案 1 :(得分:0)
只需删除子查询,因为它将为您提供唯一的条目:
select name, count(*) as distinct_name
from brgy
group by name
order by distinct_name, name;