SQL中实现查询某字段总数量和该字段不同值各自的数量

在做项目的时候,有一个需求是查询某一字段总数量和查询其中某些值数量
知道count可以查询数量,但是不清楚怎么实现这个需求
就搜了一下 代码如下

其实也比较简单,最外层就是一个select count from table 语句.
里面判断不同的字段,然后查询
如果有类似需求可以参考一下

语法就是:
最完整的应该是:

SELECT 地质灾害类型,
	count( 1 ) 灾害点总数量,
	count( CASE WHEN 地质灾害类型 LIKE '%滑坡%' THEN 1 END ) 滑坡数量,
	count( case when 地质灾害类型 like '%塌陷%' then 1 end ) 塌陷数量,
	count( case when 地质灾害类型 like '%地面沉降%' then 1 end) 地面沉降,
	count( case when 地质灾害类型 like '%水毁%' then 1 end ) 水毁,
	count( case when 地质灾害类型 like '%泥石流%' then 1 end ) 泥石流
FROM
	( SELECT * FROM geohazard_point_zhd ) AS aaa
GROUP BY 地质灾害类型;

实现的效果图是:
SQL中实现查询某字段总数量和该字段不同值各自的数量_第1张图片
查询出来了各种情况的数量
我的需求用的语句句是:

SELECT 
	count( 1 ) 灾害点总数量,
	count( CASE WHEN 地质灾害类型 LIKE '%滑坡%' THEN 1 END ) 滑坡数量,
	count( case when 地质灾害类型 like '%塌陷%' then 1 end ) 塌陷数量,
	count( case when 地质灾害类型 like '%地面沉降%' then 1 end) 地面沉降,
	count( case when 地质灾害类型 like '%水毁%' then 1 end ) 水毁,
	count( case when 地质灾害类型 like '%泥石流%' then 1 end ) 泥石流
FROM
	( SELECT * FROM geohazard_point_zhd ) AS aaa

在这里插入图片描述

你可能感兴趣的:(SQL,&,PostgreSQL)