我有一個表,如下所示:
ID | Name | Category
--------------------
1 | Cat | Mammal
2 | Dog | Mammal
3 | Pea | Vegetable
4 | Snake| Reptile
我想要一個 SQL 查詢,它將列出每個單獨的專案及其類別中的元素計數。IE
Name | Count of Category
-------------------------
Cat | 2
Dog | 2
Pea | 1
Snake | 1
Edit1:我正在使用 postgrsql
uj5u.com熱心網友回復:
如果您的 DBMS 支持視窗功能,我們可以嘗試使用COUNT視窗功能并將每個單獨的專案添加到PARTITION BY
SELECT Name,COUNT(*) OVER(PARTITION BY Category)
FROM T
sqlfiddle
uj5u.com熱心網友回復:
如果可能的話,我也更喜歡像 D-Shih 展示的視窗函式。如果您的資料庫不支持這一點,您可以使用子查詢來計算類別,如下所示:
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;
這將產生相同的結果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/483037.html
標籤:sql PostgreSQL
上一篇:為什么在插入記錄時使用回傳ID
下一篇:為什么HikariCP說“目標類org.postgresql.ds.PGSimpleDataSource上不存在屬性資料庫”?
