0
点赞
收藏
分享

微信扫一扫

sql查询后增加汇总的功能

您好 2023-07-14 阅读 36

环境

centos7,postgresql-11,mysql5.7 一般group by后统计数据后,还想算个汇总数,可以使用以下方法

postgres

使用GROUPING SETS ( ( 字段 ), ( ) )函数

SELECT
r.cmd_id,
c.name,
SUM ( r.send_count ) success,
SUM ( r.fail_count ) fail ,
round( 100 * SUM(r.send_count) * 1.0 / ( SUM(r.send_count)+SUM(r.fail_count) ) ) || '%' rate
FROM
run_cmd r left join cfg_cmd c on r.cmd_id=c.id
WHERE
r.gmt_create BETWEEN '2023-7-13 10:00:00'
AND '2023-7-13 13:00:00'
AND ( r.send_count != 0 OR r.fail_count != 0 )

GROUP BY
GROUPING SETS ( ( r.cmd_id,c.name ), ( ) )
ORDER BY fail

image.png

mysql

使用WITH ROLLUP函数

SELECT
count( 1 ),
CellId
FROM
`tagreportlog`
WHERE
LocationTime > '2025-01-01'
GROUP BY
CellId WITH ROLLUP

image.png

举报

相关推荐

0 条评论