You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建包含同表双条件计数的关联SQL视图

创建需求视图的SQL实现方案

我来帮你搞定这个统计视图的需求。核心思路是关联Blocks和Schools表,按区块分组后,分别统计每个区块内通电和通水的学校数量。这里用LEFT JOIN可以确保即使某个区块没有学校,也能在结果里显示(对应数量为0);如果只需要统计有学校的区块,换成INNER JOIN即可。

完整的视图创建SQL代码

CREATE VIEW BlockSchoolStats AS
SELECT
    b.BlockName AS '区块名称',
    SUM(CASE WHEN s.powerAvail = 1 THEN 1 ELSE 0 END) AS '通电学校数量',
    SUM(CASE WHEN s.waterAvail = 1 THEN 1 ELSE 0 END) AS '通水学校数量'
FROM Blocks b
LEFT JOIN Schools s ON b.BlockID = s.BlockID
GROUP BY b.BlockID, b.BlockName;

代码细节说明

  • 表关联逻辑:用LEFT JOIN关联两张表,以Blocks表为基础,保证所有区块都能被纳入统计,哪怕该区块没有任何学校记录。
  • 状态统计:通过CASE表达式判断每个学校的通电、通水状态,符合条件的标记为1,否则为0,再用SUM函数累加得到每个区块的对应数量(这种写法兼容大部分数据库,比直接SUMBIT类型更通用)。
  • 分组规则:按BlockID和BlockName分组,确保每个区块只会输出一行统计结果。

测试数据对应的预期结果

查询这个视图后,会得到和测试数据匹配的结果:

区块名称通电学校数量通水学校数量
A01
B12

内容的提问来源于stack exchange,提问作者Manik Arora

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:54:30