ska*_*gor 9 mysql sql group-by count
像这样的数据库表
============================
= suburb_id | value
= 1 | 2
= 1 | 3
= 2 | 4
= 3 | 5
Run Code Online (Sandbox Code Playgroud)
查询是
SELECT COUNT(suburb_id) AS total, suburb_id
FROM suburbs
where suburb_id IN (1,2,3,4)
GROUP BY suburb_id
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此查询时,当suburb_id = 0时它不会给COUNT(suburb_id)= 0因为在郊区表中没有suburb_id 4,我希望这个查询为suburb_id = 4返回0,就像
============================
= total | suburb_id
= 2 | 1
= 1 | 2
= 1 | 3
= 0 | 4
Run Code Online (Sandbox Code Playgroud)
geo*_*tnz 11
GROUP BY需要使用行,因此如果某个类别没有行,则不会获得计数.可以将where子句视为在将源行组合在一起之前限制它们.where子句未提供要分组的类别列表.
你可以做的是编写一个查询来选择类别(郊区),然后在子查询中进行计数.(我不确定MySQL对此的支持是什么样的)
就像是:
SELECT
s.suburb_id,
(select count(*) from suburb_data d where d.suburb_id = s.suburb_id) as total
FROM
suburb_table s
WHERE
s.suburb_id in (1,2,3,4)
Run Code Online (Sandbox Code Playgroud)
(MSSQL,道歉)
| 归档时间: |
|
| 查看次数: |
14791 次 |
| 最近记录: |