簡體   English   中英

使用mysql group by顯示計數為0的行

[英]Displaying rows with count 0 with mysql group by

我在MySql公司有兩個表:(cname,city)有效:( ename,cname,salary)

我想顯示為每家公司工作的員工人數,即使這個數字為零。

例如為...

Company : 
Microsoft Bangalore
IBM       NY

works : 
emp1 Microsoft 10000
emp2 Microsoft 90000

輸出應該是:

Microsoft 2
IBM 0

但是以下查詢和其他類似查詢僅打印那些至少有一名員工的公司:

Select count(*) from works natural join company group by company.cname

如果我使用外部聯接,那么零雇員的公司仍然會出現在一行中,因此該選項也是如此。

怎么做?

LEFT JOIN的經典案例:

SELECT
  c.cname,
  COUNT(w.ename) wcount 
FROM
  company c
  LEFT JOIN works w ON c.cname = w.cname
GROUP BY
  c.cname

嘗試

Select company.cname, count(work.id) from company left join work on ....=.... group by company.cname

在哪里填寫“......”部分,並將work.id更改為您的名字

使用子查詢還有另一種方法,這是我案例中的一個示例:

select count(`order_id`) as cnt
from (
    select `order_id` from `room_bookings`
    where `room_id` = 3 and `day_id` = 20180201 
    group by `order_id`
) as b;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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