SELECT XZQHDM,SUM(JCCD) FROM JSZKPDB GROUP BY XZQHDM dm ,优化这条sql,既可以计算JCCD的总数,又可以计算大于八十分的jccd的总数,通过xzqhdm分组
时间: 2024-02-19 14:03:51 浏览: 105
可以使用条件聚合来实现:
```
SELECT
XZQHDM,
SUM(JCCD) AS total_JCCD,
SUM(CASE WHEN JCCD > 80 THEN JCCD ELSE 0 END) AS JCCD_over_80
FROM
JSZKPDB
GROUP BY
XZQHDM
```
这样可以在一个 SQL 语句中同时计算 JCCD 的总数和大于 80 分的 JCCD 总数,并且通过 XZQHDM 字段进行分组。
相关问题
SELECT SUM(JCCD) as num,PDDJ FROM JSZKPDB WHERE PQI is NOT null and XZQHDM like '36%' GROUP BY PDDJ,优化这条sql,使得可以展示出num占总数的比例
可以将原始SQL语句改为以下形式,使用子查询来实现总数的计算:
```
SELECT
SUM(JCCD) AS num,
PDDJ,
(SUM(JCCD) * 100.0 / total.total_num) AS ratio
FROM
JSZKPDB,
(SELECT SUM(JCCD) AS total_num FROM JSZKPDB WHERE PQI IS NOT NULL AND XZQHDM LIKE '36%') AS total
WHERE
PQI IS NOT NULL AND
XZQHDM LIKE '36%'
GROUP BY
PDDJ
```
这里使用了一个子查询 `total` 来计算总数,然后再在主查询中使用 `total.total_num` 来获取总数。同时,还计算了 `num` 占总数的比例,即 `num / total.total_num`,并将其命名为 `ratio`。
阅读全文