SQL 计数 table 列
SQL to count table column
我有一个 table 如下图:
ID | Name | Category
--------------------
1 | Cat | Mammal
2 | Dog | Mammal
3 | Pea | Vegetable
4 | Snake| Reptile
我想要一个 SQL 查询,该查询将列出每个单独的项目及其类别中的元素计数。即
Name | Count of Category
-------------------------
Cat | 2
Dog | 2
Pea | 1
Snake | 1
Edit1:我正在使用 postgrsql
如果您的数据库管理系统支持window函数,我们可以尝试使用COUNT
window函数并在PARTITION BY
中添加每个单独的项目
SELECT Name,COUNT(*) OVER(PARTITION BY Category)
FROM T
如果可能的话,我也希望像 D-Shih 那样的 window 函数。如果你的数据库不支持这个,你可以使用子查询来统计类别,像这样:
SELECT name, c "Count of Category" FROM
yourtable y JOIN
(SELECT category, COUNT(category) c FROM yourtable GROUP BY category) sub
ON y.category = sub.category;
这将产生相同的结果。
我有一个 table 如下图:
ID | Name | Category
--------------------
1 | Cat | Mammal
2 | Dog | Mammal
3 | Pea | Vegetable
4 | Snake| Reptile
我想要一个 SQL 查询,该查询将列出每个单独的项目及其类别中的元素计数。即
Name | Count of Category
-------------------------
Cat | 2
Dog | 2
Pea | 1
Snake | 1
Edit1:我正在使用 postgrsql
如果您的数据库管理系统支持window函数,我们可以尝试使用COUNT
window函数并在PARTITION BY
SELECT Name,COUNT(*) OVER(PARTITION BY Category)
FROM T
如果可能的话,我也希望像 D-Shih 那样的 window 函数。如果你的数据库不支持这个,你可以使用子查询来统计类别,像这样:
SELECT name, c "Count of Category" FROM
yourtable y JOIN
(SELECT category, COUNT(category) c FROM yourtable GROUP BY category) sub
ON y.category = sub.category;
这将产生相同的结果。