首页 > 解决方案 > 包括零计数的 SQL 计数查询

问题描述

我有一个包含列的表:fips、hitYear、hit。主键是 (fips, hitYear)。对于每一年,每个县 fips 代码出现一次,命中值为 0 或 1。

我将如何开发一个 SQL 查询来获取一个县在一年范围内的命中值为 1 的次数,包括计数为零的县?输出将包含以下列:fips 和 count。

我目前的查询是

SELECT fips, Count(*) FROM (SELECT * from countyHits WHERE hit = 1) GROUP BY fips

但这不包括计数为零的县。

标签: sql

解决方案


我认为您可以使用条件聚合来做到这一点:

SELECT fips, 
       SUM(CASE WHEN hit = 1 AND hityear = 2018 THEN 1 ELSE 0 END) as hits_2018
FROM countyHits
GROUP BY fips

推荐阅读