一、case when经典使用方法详解,学会这招,复杂的条件统计,也如切瓜坎菜般容易
SELECT "地市", COUNT(*) AS "总栅格数", SUM(CASE WHEN "scrsrp_count" = 0 THEN 0 ELSE (CASE WHEN "scrsrp_lt110"/"scrsrp_count" >= 0.2 THEN 1 ELSE 0 END) END) AS "弱覆盖栅格数量" FROM "栅格级数据" GROUP BY "地市"
分解动作如下
- SELECT子句指定了要返回的列,其中包括"地市"、计算后的"总栅格数"和"弱覆盖栅格数量"。
- COUNT(*)函数用于计算每个地市的总栅格数。
- SUM(CASE WHEN ... END)部分是一个嵌套的CASE WHEN语句,用于计算弱覆盖栅格数量。
- 内部的CASE WHEN "scrsrp_count" = 0 THEN 0 ELSE (CASE WHEN "scrsrp_lt110"/"scrsrp_count" >= 0.2 THEN 1 ELSE 0 END) END用于判断是否为弱覆盖栅格(满足条件则返回1,不满足则返回0)。
- 外部的SUM()函数用于对每个地市的弱覆盖栅格进行求和。
- FROM子句指定了数据来源表为"栅格级数据"。
- GROUP BY子句按照"地市"列对数据进行分组。
结果将呈现每个地市的总栅格数和弱覆盖栅格数量。由于我无法访问您的实际数据,无法提供具体的结果。请将该查询应用到您的数据中以获取准确的结果。
二、其他常用基本SQL介绍
创建表:
1、CREATE TABLE 表名 (
列1 数据类型,
列2 数据类型,
...
);
2、插入数据:
INSERT INTO 表名 (列1, 列2, ...)
VALUES (值1, 值2, ...);
3、查询数据:
SELECT 列1, 列2, ...
FROM 表名
WHERE 条件;
4、更新数据:
5、UPDATE 表名
SET 列1 = 值1, 列2 = 值2, ...
WHERE 条件;
6、删除数据:
DELETE FROM 表名
WHERE 条件;
7、常用聚合函数:
SELECT COUNT(*) AS 记录数
FROM 表名;
SELECT SUM(列名) AS 总和
FROM 表名;
SELECT AVG(列名) AS 平均值
FROM 表名;
SELECT MAX(列名) AS 最大值
FROM 表名;
SELECT MIN(列名) AS 最小值
FROM 表名;
Tags:case when then end