SELECT b.city AS administrativeDivision, isnull(sum(case when a.enterprise_level=0 then 1 else 0 end),0) as excellent, isnull(sum(case when a.enterprise_level=1 then 1 else 0 end),0) as good, isnull(sum(case when a.enterprise_level=2 then 1 else 0 end),0) as average, isnull(sum(case when a.enterprise_level=3 then 1 else 0 end),0) as poor, COUNT(a.ID) AS enterprises_total FROM ALL_SAFE.t_enterprise_effect a,ALL_SAFE.T_ENTERPRISE_INFO b WHERE a.enterprise_code = b.enter_code and a.end_time >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6) AND a.end_time < TRUNC(NEXT_DAY(SYSDATE-8,1)+1) AND (b.city != '') group by b.city
时间: 2024-04-18 18:25:38 浏览: 137
sql学习之CASE WHEN THEN ELSE END的用法
这是另一个SQL查询语句,用于统计企业级别在指定时间范围内的数量,并按城市进行分组。
查询结果包括行政区划(使用b.city字段作为别名)、优秀企业数量、良好企业数量、一般企业数量、差劣企业数量和总企业数量。
查询条件包括企业编码与企业信息表中的企业编码匹配,以及结束时间在指定范围内的条件。还有一个额外的条件是城市不为空。
最后,使用GROUP BY语句按城市进行分组,以获取每个城市的统计结果。
请注意,这个查询语句也使用了动态SQL的写法,并使用了SUM和CASE语句来计算不同企业级别的数量。
阅读全文