簡體   English   中英

SQL計算列中每個不同的值,並從ID匹配的另一個表中添加名稱

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM