相关疑难解决方法(0)

使用mysql group by显示计数为0的行

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

我想显示为每家公司工作的员工人数,即使这个数字为零.

例如为...

Company : 
Microsoft Bangalore
IBM       NY

works : 
emp1 Microsoft 10000
emp2 Microsoft 90000
Run Code Online (Sandbox Code Playgroud)

输出应该是:

Microsoft 2
IBM 0
Run Code Online (Sandbox Code Playgroud)

但是以下查询和其他类似查询仅打印那些至少有一名员工的公司:

Select count(*) from works natural join company group by company.cname
Run Code Online (Sandbox Code Playgroud)

如果我使用外部联接,那么零雇员的公司仍然会出现在一行中,因此该选项也是如此.

怎么做?

mysql group-by

13
推荐指数
1
解决办法
3万
查看次数

mysql SELECT COUNT(*)... GROUP BY ...不返回计数为零的行

SELECT student_id, section, count( * ) as total
FROM raw_data r
WHERE response = 1
GROUP BY student_id, section
Run Code Online (Sandbox Code Playgroud)

测试共有4个部分,每个部分都有不同的问题.我想知道,对于每个学生和每个部分,他们正确回答了多少问题(响应= 1).

但是,使用此查询,如果学生在给定部分中没有得到任何问题,那么我的结果集中将完全丢失该行.我怎样才能确保每个学生总共返回4行,即使一行的"总数"为0?

这是我的结果集的样子:

student_id  section     total
1           DAP--29     3
1           MEA--16     2
1           NNR--13     1  --> missing the 4th section for student #1
2           DAP--29     1
2           MEA--16     4
2           NNR--13     2  --> missing the 4th section for student #2
3           DAP--29     2
3           MEA--16     3
3           NNR--13     3 --> missing the 4th section for student #3
4           DAP--29     5 …
Run Code Online (Sandbox Code Playgroud)

mysql sql

5
推荐指数
1
解决办法
1万
查看次数

当将 COUNT 与 GROUP BY 一起使用时,MySQL 包含零行

我正在尝试执行一个查询,该查询通过名为 type_id 的属性对一组数据进行分组。

SELECT
vt.id AS voucher_type,
COALESCE(COUNT(v.id), 0) AS vouchers_remaining
FROM
vouchers v
INNER JOIN voucher_types vt
ON vt.id = v.type_id
WHERE
v.sold = 0
GROUP BY vt.id
Run Code Online (Sandbox Code Playgroud)

我想要的结果是 type_id 和每种类型剩余的未售出产品数量。如果至少还剩下一个,则此操作可以正常工作,但是如果存在零计数行,则不会在结果集中返回该行。

如何为那些没有任何相应行进行计数的类型设置虚拟行?

任何建议将不胜感激。

谢谢

mysql group-by count

0
推荐指数
1
解决办法
9113
查看次数

标签 统计

mysql ×3

group-by ×2

count ×1

sql ×1