我在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)
如果我使用外部联接,那么零雇员的公司仍然会出现在一行中,因此该选项也是如此.
怎么做?
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) 我正在尝试执行一个查询,该查询通过名为 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 和每种类型剩余的未售出产品数量。如果至少还剩下一个,则此操作可以正常工作,但是如果存在零计数行,则不会在结果集中返回该行。
如何为那些没有任何相应行进行计数的类型设置虚拟行?
任何建议将不胜感激。
谢谢