背景
公司内一套自动化平台
我想能够早上到了公司之后,
看看晚上11掉到早上八点运行了多少个自动化任务.
想着可以写一个SQL来实现结果.
所以想着处理一下. 能够通过一个SQL插叙出来结果复制
创建view
CREATE
OR REPLACE VIEW ui_case_Before_8am AS SELECT
case1.RESULT,
task.app_url,
case1.update_time
FROM
ui_run_case case1
INNER JOIN ui_task task ON case1.task_id = task.task_id
WHERE
case1.create_time > CURRENT_DATE :: TIMESTAMP - INTERVAL '12 H'
AND case1.update_time < CURRENT_DATE :: TIMESTAMP + INTERVAL '8 H'
AND task.task_name like 'myapp%';
CREATE
OR REPLACE VIEW ui_case_Before_8am_1before AS SELECT
case1.RESULT,
task.app_url,
case1.update_time
FROM
ui_run_case case1
INNER JOIN ui_task task ON case1.task_id = task.task_id
WHERE
case1.create_time > CURRENT_DATE :: TIMESTAMP - INTERVAL '36 H'
AND case1.update_time < CURRENT_DATE :: TIMESTAMP - INTERVAL '16 H'
AND task.task_name like 'myapp%';
CREATE
OR REPLACE VIEW ui_case_Before_8am_2before AS SELECT
case1.RESULT,
task.app_url,
case1.update_time
FROM
ui_run_case case1
INNER JOIN ui_task task ON case1.task_id = task.task_id
WHERE
case1.create_time > CURRENT_DATE :: TIMESTAMP - INTERVAL '60 H'
AND case1.update_time < CURRENT_DATE :: TIMESTAMP - INTERVAL '40 H'
AND task.task_name like 'myapp%';
CREATE
OR REPLACE VIEW ui_case_Before_8am_7before AS SELECT
case1.RESULT,
task.app_url,
case1.update_time
FROM
ui_run_case case1
INNER JOIN ui_task task ON case1.task_id = task.task_id
WHERE
case1.create_time > CURRENT_DATE :: TIMESTAMP - INTERVAL '180 H'
AND case1.update_time < CURRENT_DATE :: TIMESTAMP - INTERVAL '160 H'
AND task.task_name like 'myapp%';复制
大模型帮助
https://tongyi.aliyun.com/
四个视图 每个视图有两列, 其中一列是url 另外一列合计值,
一个SQL将四个视图的count链接起来. 分列展示每个视图的合计值
最左侧一列为url 使用pg数据库的语法
最后一行进行合计复制
给出SQL
SELECT
*
FROM
(
WITH combined AS (
SELECT COALESCE
( b2.app_url, b1.app_url, b0.app_url, b7.app_url ) AS app_url,
COALESCE ( b2.cnt, 0 ) AS Before_8am_2before_count,
COALESCE ( b1.cnt, 0 ) AS Before_8am_1before_count,
COALESCE ( b0.cnt, 0 ) AS Before_8am_count,
COALESCE ( b7.cnt, 0 ) AS Before_8am_7before_count
FROM
( SELECT app_url, COUNT ( 1 ) AS cnt FROM ui_case_Before_8am_2before GROUP BY app_url ) b2
FULL OUTER JOIN ( SELECT app_url, COUNT ( 1 ) AS cnt FROM ui_case_Before_8am_1before GROUP BY app_url ) b1 ON b2.app_url = b1.app_url
FULL OUTER JOIN ( SELECT app_url, COUNT ( 1 ) AS cnt FROM ui_case_Before_8am GROUP BY app_url ) b0 ON COALESCE ( b2.app_url, b1.app_url ) = b0.app_url
FULL OUTER JOIN ( SELECT app_url, COUNT ( 1 ) AS cnt FROM ui_case_Before_8am_7before GROUP BY app_url ) b7 ON COALESCE ( b2.app_url, b1.app_url, b0.app_url ) = b7.app_url
) SELECT
*
FROM
combined UNION ALL
SELECT
'Total' AS app_url,
SUM ( Before_8am_2before_count ),
SUM ( Before_8am_1before_count ),
SUM ( Before_8am_count ),
SUM ( Before_8am_7before_count )
FROM
combined
) test
ORDER BY
CASE
WHEN test.app_url = 'Total' THEN
2 ELSE 1
END,
Before_8am_2before_count + Before_8am_1before_count + Before_8am_count + Before_8am_7before_count DESC;复制
最简单的处理
create view auto as "上一章节的SQL"
这样 select * from auto 就可以了.复制
文章转载自济南小老虎,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
378次阅读
2025-04-17 17:02:24
云和恩墨钟浪峰:安全生产系列之SQL优化安全操作
墨天轮编辑部
245次阅读
2025-03-31 11:08:20
openGauss 7.0.0-RC1 版本正式发布!
Gauss松鼠会
207次阅读
2025-04-01 12:27:03
一键部署 Dify + MCP Server,高效开发 AI 智能体应用
阿里巴巴中间件
151次阅读
2025-04-07 09:44:48
Before & After:SQL整容级优化
薛晓刚
110次阅读
2025-04-14 22:08:44
SQL 优化之 OR 子句改写
xiongcc
97次阅读
2025-04-21 00:08:06
DataWorks数据集成同步至Hologres能力介绍
阿里云大数据AI技术
87次阅读
2025-04-01 10:26:58
夺冠!电科金仓斩获申威赛马-数据库性能大赛第一名
金仓数据库
86次阅读
2025-03-31 10:00:44
Mysql/Oracle/Postgresql快速批量生成百万级测试数据sql
hongg
77次阅读
2025-04-07 15:32:54
实用工具来了,存量 OpenAPI 批量转化为 MCP Server
Se7en的架构笔记
63次阅读
2025-04-11 15:34:28