识别sqlite3的一列中每个不同值的计数

时间:2019-04-22 15:27:04

标签: sql sqlite

我正在尝试识别名为name的表的一列(brgy)中每个不同值的计数。

---------------------
| ID  |  name        |
---------------------    
| 1   |   Alfonso    |
| 2   |   Arakan     |
| 3   |   Poblacion  |
| 4   |   Ilaya      |
| 5   |   Poblacion  |
----------------------

我尝试使用此代码,但是尽管COUNT1列中出现了两次,但它仍将Poblacion设为name

SELECT name,COUNT(name) AS distinct_name
FROM (
  SELECT DISTINCT name
  FROM brgy
  GROUP BY name
)
GROUP BY name;

预期的输出应消除重复的name,但总结不同的namename列中出现的次数:

预期输出如下,

-----------------------------
| name      | distinct_name |
-----------------------------  
| Alfonso   |    1          |
| Arakan    |    1          |
| Ilaya     |    1          |
| Poblacion |    2          |
-----------------------------

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;