如何在使用 WHERE 删除的行上将计数值显示为 0(微软访问)
Posted
技术标签:
【中文标题】如何在使用 WHERE 删除的行上将计数值显示为 0(微软访问)【英文标题】:How to show count value as 0 on rows removed with WHERE (microsoft access) 【发布时间】:2016-09-03 21:17:26 【问题描述】:我有两张表,其中一张表代表带有位置的调查,另一张表代表受访者(每次调查都有很多人)。我试图显示每个位置超过一定年龄的人数,但是有些省份没有超过一定年龄的人,因此不会显示在结果表中。如果没有人超过一定年龄,我希望计数显示为零。 我有:
SELECT a.location, Count([b.age])
FROM Survey AS a LEFT JOIN person AS b ON a.surveyid = b.surveyid
Where b.age >= 85
GROUP BY a.location;
我意识到 WHERE 子句是消除零计数结果的原因,但我无法弄清楚我需要的子查询。
【问题讨论】:
【参考方案1】:改为使用条件聚合。这意味着将布尔条件移动到聚合函数的参数
SELECT s.location,
SUM(IIF(p.age >= 85, 1, 0))
FROM Survey AS s LEFT JOIN
person AS p
ON s.surveyid = p.surveyid
GROUP BY s.location;
注意到我将表别名更改为表名的缩写。这使得查询更容易理解。
【讨论】:
以上是关于如何在使用 WHERE 删除的行上将计数值显示为 0(微软访问)的主要内容,如果未能解决你的问题,请参考以下文章
如何使用引用多个表的 WHERE 子句删除 sqlite 中的行?