[英]SQL count each distinct value in column and add name from another table where the ID matches
我的SQL技能幾乎沒有。 在查看了過去兩個小時的時間后,嘗試找出答案后,我需要一些幫助。
我有2張桌子如下
Table1 Table2
ID | Name Status_id
----------- ----------
1 | Open 1
2 | Closed 2
3 | On-Hold 1
我想做的是計算表2中的status_id並按status_id分組。 然后在第一欄中添加ID匹配的名稱。
我目前所擁有的是
SELECT status_id, COUNT(*) AS 'num' FROM table2 GROUP BY status_id
到目前為止,一切都很好,而且回報
1 | 2
2 | 1
我需要退貨的是
Open | 2
Closed | 1
我希望這很清楚。 有人可以幫忙嗎?
非常感謝!
SELECT a.name, COUNT(*) AS num FROM table2 b
INNER JOIN table1 a
ON b.status_id=a.id
GROUP BY status_id
如果您希望保留的值也為零,則需要進行LEFT連接並計算table2中的一列,而不是*
SELECT t1.name,
Count(t2.Status_id) AS num
FROM table1 t1
LEFT JOIN table2 t2
ON t1.id = t2.Status_id
GROUP BY t1.name;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.