使用SQL 统计表最大值,最小值,平均值,中位数值
问:有一个postgres数据表,表中有update_time, create_time关于时间戳的字段,选择某个时间段,计算出update_time减去create_time的值做为耗时时间的字段duration_time,统计出在这段时间内耗时时间的平均值,中位数值,最大值,和最小值,请问如何通过sql语句实现此统计?
-
答:您好!您可以使用以下SQL语句来实现您所描述的统计:
SELECT AVG(duration_time) AS avg_duration, PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY duration_time) AS median_duration, MAX(duration_time) AS max_duration, MIN(duration_time) AS min_duration FROM ( SELECT update_time - create_time AS duration_time FROM your_table_name WHERE update_time BETWEEN start_time AND end_time ) subquery; 请注意,您需要将
your_table_name
替换为您的表名,start_time
和end_time
替换为您想要查询的时间段。希望这对您有帮助!
表中还有另一个字段处置策略字段为handle_strategy, 按照handle_strategy分组 统计,如何改写上面的查询?
-
您好!如果您想按照
handle_strategy
字段分组统计,可以使用以下SQL语句:SELECT handle_strategy, AVG(duration_time) AS avg_duration, PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY duration_time) AS median_duration, MAX(duration_time) AS max_duration, MIN(duration_time) AS min_duration FROM ( SELECT handle_strategy, update_time - create_time AS duration_time FROM your_table_name WHERE update_time BETWEEN start_time AND end_time ) subquery GROUP BY handle_strategy; 请注意,您需要将
your_table_name
替换为您的表名,start_time
和end_time
替换为您想要查询的时间段。希望这对您有帮助!
平均数统计保留到整数位,不需要小数; 上面PERCENTILE_CONT(0.5) WITHIN GROUP语句表示的是什么意思?
-
您好!如果您想将平均数统计保留到整数位,可以使用
ROUND
函数来实现。以下是修改后的SQL语句:SELECT handle_strategy, ROUND(AVG(duration_time)) AS avg_duration, PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY duration_time) AS median_duration, MAX(duration_time) AS max_duration, MIN(duration_time) AS min_duration FROM ( SELECT handle_strategy, update_time - create_time AS duration_time FROM your_table_name WHERE update_time BETWEEN start_time AND end_time ) subquery GROUP BY handle_strategy; 至于您问的
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY duration_time)
语句,它表示计算duration_time
字段的中位数。PERCENTILE_CONT
是一个聚合函数,它用于计算连续分布的给定百分位数。在这里,我们使用0.5
作为参数,表示我们想要计算中位数(即第50百分位数)。WITHIN GROUP (ORDER BY duration_time)
子句用于指定对哪个字段进行排序以计算百分位数。希望这些信息对您有帮助!
出处:https://www.cnblogs.com/failymao/p/17610661.html
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/17611779.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2020-08-07 树莓派尝试玩儿Docker虚拟机
2020-08-07 家用NAS ---- U-NAS4.0的基本安装与基本使用
2020-08-07 我家云NAS折腾记
2020-08-07 国产64位树莓派系统上手评测
2018-08-07 单元测试数据库 -- 使用事物回滚测试
2017-08-07 ASP.NET 生命周期
2017-08-07 2017 沪牌中标后流程