PostgreSql根据给的时间范围统计15分钟粒度、小时粒度、天粒度、周粒度、月粒度工单

news2024/12/23 1:51:12

PostgreSql根据给的时间范围统计15分钟粒度、小时粒度、天粒度、周粒度、月粒度工单

  • 说明
  • 实现
    • 15分钟粒度工单统计
    • 小时粒度工单统计
    • 天粒度工单统计
    • 周粒度工单统计
    • 月粒度工单统计

说明

项目有个需求是统计故障工单每15分钟、每小时、每天、每周和每月共有多少工单。
这里先做个笔记,怕以后忘记怎么使用。
如果不知道generate_series()函数用法,可以参考我的这篇博客进行了解:数据库(postgresql和mysql)统计一个范围内的日期,没有当天日期的数据统计补0

实现

这里只统计2022-10-27那一天的数据,可以看到这天一共有160条数据。

在这里插入图片描述
然后我们根据时间分组看看,每个时间段都有多少数据,可以看到我们表中的时间格式是yyyy-MM-dd HH24:mi:ss这种年月日时分秒的格式。数据库表里面create_time类型为timestamp。
在这里插入图片描述

15分钟粒度工单统计

在实际开发中,我们就只需要传一个开始时间和结束时间这2个参数就行。
代码中只有2个参数,一个#{startTime}代表开始时间,一个#{endTime}代表结束时间,代码里面传给mybatis的时间类型为String字符串,格式为yyyy-MM-dd或者yyyy-MM-dd HH24:mi:ss都行,因为这里有用cast将时间格式转为timestamp(yyyy-MM-dd HH24:mi:ss)这种类型。

原mybatis中sql代码:

select '故障' type,c.date,
coalesce(d.order_num,0) order_num,
coalesce(d.archived_num,0) archived_num,
coalesce(d.timeout_soon_num,0) timeout_soon_num,
coalesce(d.no_timeout_num,0) no_timeout_num,
coalesce(d.order_inprogress,0) order_inprogress,
coalesce(d.order_overtime,0) order_overtime
from
(select to_char(t,'yyyy-MM-dd HH24:mi:00') date
from generate_series(cast(#{startTime} as timestamp),cast(#{endTime} as timestamp),'15 minute') t) c
left join
(select to_char(b.starttime,'yyyy-MM-dd HH24:mi:00') date,
count(distinct a.ticket_id) order_num,
count(distinct case when a.ticket_status ='已归档' then a.ticket_id end) archived_num,
count(distinct case when a.ticket_status !='已归档' and a.is_time_out !='是' and a.timeout_soon =true then a.ticket_id end) timeout_soon_num,
count(distinct case when a.is_time_out !='是' then a.ticket_id end) no_timeout_num,
count(distinct case when a.ticket_status !='已归档' then a.ticket_id end) order_inprogress,
count(distinct case when a.ticket_status !='已归档' and a.is_time_out ='是' then a.ticket_id end) order_overtime
from rnodbv3.v_m_cm5g_ticket_alarm_general a
left join
(select t as starttime ,t +'15 minute' as endtime
from generate_series(cast(#{startTime} as timestamp),cast(#{endTime} as timestamp),'15 minute') t
) b on a.create_time >=b.starttime and a.create_time <b.endtime
where a.curr_flag=true
and a.create_time>=cast(#{startTime} as timestamp) and a.create_time<cast(#{endTime} as timestamp)+interval '15 minute'
group by b.starttime
order by b.starttime) d on c.date=d.date

sql实际执行结果:
这里将ticket_id前的distinct去重删除是为了给你们方便比对统计结果是不是160条。

select '故障' type,c.date,
coalesce(d.order_num,0) order_num,
coalesce(d.archived_num,0) archived_num,
coalesce(d.timeout_soon_num,0) timeout_soon_num,
coalesce(d.no_timeout_num,0) no_timeout_num,
coalesce(d.order_inprogress,0) order_inprogress,
coalesce(d.order_overtime,0) order_overtime
from
(select to_char(t,'yyyy-MM-dd HH24:mi:00') date
from generate_series(cast('2022-10-27 00:00:00' as timestamp),cast('2022-10-27 23:45:00' as timestamp),'15 minute') t) c
left join
(select to_char(b.starttime,'yyyy-MM-dd HH24:mi:00') date,
count(a.ticket_id) order_num,
count(distinct case when a.ticket_status ='已归档' then a.ticket_id end) archived_num,
count(distinct case when a.ticket_status !='已归档' and a.is_time_out !='是' and a.timeout_soon =true then a.ticket_id end) timeout_soon_num,
count(distinct case when a.is_time_out !='是' then a.ticket_id end) no_timeout_num,
count(distinct case when a.ticket_status !='已归档' then a.ticket_id end) order_inprogress,
count(distinct case when a.ticket_status !='已归档' and a.is_time_out ='是' then a.ticket_id end) order_overtime
from rnodbv3.v_m_cm5g_ticket_alarm_general a
left join
(select t as starttime ,t +'15 minute' as endtime
from generate_series(cast('2022-10-27 00:00:00' as timestamp),cast('2022-10-27 23:45:00' as timestamp),'15 minute') t
) b on a.create_time >=b.starttime and a.create_time <b.endtime
where a.curr_flag=true
and a.create_time>=cast('2022-10-27 00:00:00' as timestamp) and a.create_time<cast('2022-10-27 23:45:00' as timestamp)+interval '15 minute'
group by b.starttime
order by b.starttime) d on c.date=d.date

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
统计结果看order_num工单数量可以看到[2022-10-27 00:30:00,2022-10-27 00:45:00)这个前闭后开区间共有156条数据。将create_time>=2022-10-27 00:30:00 and create_time<2022-10-27 00:45:00这个时间段的数据全部汇聚统计到了2022-10-27 00:30:00这个时间段。
同理[2022-10-27 15:00:00,2022-10-27 15:15:00)这个区间一条数据。
[2022-10-27 17:15:00,2022-10-27 17:30:00)这个区间一条数据。
[2022-10-27 17:45:00,2022-10-27 18:00:00)这个区间一条数据。
[2022-10-27 23:45:00,2022-10-28 00:00:00)这个区间一条数据。
一共160条数据,全部符合范围匹配。

小时粒度工单统计

在实际开发中,也是只需要传一个开始时间和结束时间这2个参数就行

原mybatis中sql代码(比15分钟粒度sql要简单一些):

<![CDATA[]]> 这个符合是mybatis中不编译的意思,不加这个的话>和<或者其他特殊符号提交给gitlab后会转义成字符,如:>变为& gt;这种形式。

符号

select '故障' type,a.date||':00:00' date,
coalesce(b.order_num,0) order_num,
coalesce(b.archived_num,0) archived_num,
coalesce(b.timeout_soon_num,0) timeout_soon_num,
coalesce(b.no_timeout_num,0) no_timeout_num,
coalesce(b.order_inprogress,0) order_inprogress,
coalesce(b.order_overtime,0) order_overtime
from
(select to_char(t,'yyyy-MM-dd HH24') date
from generate_series(cast(#{startTime} as timestamp),cast(#{endTime} as timestamp),'1 hour') t) a
left join
(select to_char(create_time,'yyyy-MM-dd HH24') date,
count(distinct ticket_id) order_num,
count(distinct case when ticket_status ='已归档' then ticket_id end) archived_num,
count(distinct case when ticket_status !='已归档' and is_time_out !='是' and timeout_soon =true then ticket_id end) timeout_soon_num,
count(distinct case when is_time_out !='是' then ticket_id end) no_timeout_num,
count(distinct case when ticket_status !='已归档' then ticket_id end) order_inprogress,
count(distinct case when ticket_status !='已归档' and is_time_out ='是' then ticket_id end) order_overtime
from rnodbv3.v_m_cm5g_ticket_alarm_general
where curr_flag=true
<![CDATA[and create_time>=cast(#{startTime} as timestamp) and create_time<cast(#{endTime} as timestamp)+interval '1 hour' ]]>
group by date) b on a.date=b.date

sql实际执行结果:
这里将ticket_id前的distinct去重删除是为了给你们方便比对统计结果是不是160条。

select '故障' type,a.date,
coalesce(b.order_num,0) order_num,
coalesce(b.archived_num,0) archived_num,
coalesce(b.timeout_soon_num,0) timeout_soon_num,
coalesce(b.no_timeout_num,0) no_timeout_num,
coalesce(b.order_inprogress,0) order_inprogress,
coalesce(b.order_overtime,0) order_overtime
from
(select to_char(t,'yyyy-MM-dd HH24:00:00') date
from generate_series(cast('2022-10-27 00:00:00' as timestamp),cast('2022-10-27 23:00:00' as timestamp),'1 hour') t) a
left join
(select to_char(create_time,'yyyy-MM-dd HH24:00:00') date,
count(ticket_id) order_num,
count(distinct case when ticket_status ='已归档' then ticket_id end) archived_num,
count(distinct case when ticket_status !='已归档' and is_time_out !='是' and timeout_soon =true then ticket_id end) timeout_soon_num,
count(distinct case when is_time_out !='是' then ticket_id end) no_timeout_num,
count(distinct case when ticket_status !='已归档' then ticket_id end) order_inprogress,
count(distinct case when ticket_status !='已归档' and is_time_out ='是' then ticket_id end) order_overtime
from rnodbv3.v_m_cm5g_ticket_alarm_general
where curr_flag=true
and create_time>=cast('2022-10-27 00:00:00' as timestamp) and create_time<cast('2022-10-27 23:00:00' as timestamp)+interval '1 hour'
group by date) b on a.date=b.date

在这里插入图片描述
统计结果符合预期。

天粒度工单统计

在实际开发中,也是只需要传一个开始时间和结束时间这2个参数就行。

原mybatis中sql代码:
sql写法和小时粒度一样,唯一区别就是时间格式不一样

select '故障' type,a.date,
coalesce(b.order_num,0) order_num,
coalesce(b.archived_num,0) archived_num,
coalesce(b.timeout_soon_num,0) timeout_soon_num,
coalesce(b.no_timeout_num,0) no_timeout_num,
coalesce(b.order_inprogress,0) order_inprogress,
coalesce(b.order_overtime,0) order_overtime
from
(select to_char(t,'yyyy-MM-dd') date
from generate_series(cast(#{condition.startTime} as timestamp),cast(#{condition.endTime} as timestamp),'1 day') t) a
left join
(select to_char(create_time,'yyyy-MM-dd') date,
count(distinct ticket_id) order_num,
count(distinct case when ticket_status ='已归档' then ticket_id end) archived_num,
count(distinct case when ticket_status !='已归档' and is_time_out !='是' and timeout_soon =true then ticket_id end) timeout_soon_num,
count(distinct case when is_time_out !='是' then ticket_id end) no_timeout_num,
count(distinct case when ticket_status !='已归档' then ticket_id end) order_inprogress,
count(distinct case when ticket_status !='已归档' and is_time_out ='是' then ticket_id end) order_overtime
from rnodbv3.v_m_cm5g_ticket_alarm_general
where curr_flag=true
<![CDATA[and create_time>=cast(#{condition.startTime} as timestamp) and create_time<cast(#{condition.endTime} as timestamp)+interval '1 day' ]]>
group by date) b on a.date=b.date

sql实际执行结果:
这里将ticket_id前的distinct去重删除是为了给你们方便比对统计结果是不是160条。

select '故障' type,a.date,
coalesce(b.order_num,0) order_num,
coalesce(b.archived_num,0) archived_num,
coalesce(b.timeout_soon_num,0) timeout_soon_num,
coalesce(b.no_timeout_num,0) no_timeout_num,
coalesce(b.order_inprogress,0) order_inprogress,
coalesce(b.order_overtime,0) order_overtime
from
(select to_char(t,'yyyy-MM-dd') date
from generate_series(cast('2022-10-01 00:00:00' as timestamp),cast('2022-10-31 00:00:00' as timestamp),'1 day') t) a
left join
(select to_char(create_time,'yyyy-MM-dd') date,
count(ticket_id) order_num,
count(distinct case when ticket_status ='已归档' then ticket_id end) archived_num,
count(distinct case when ticket_status !='已归档' and is_time_out !='是' and timeout_soon =true then ticket_id end) timeout_soon_num,
count(distinct case when is_time_out !='是' then ticket_id end) no_timeout_num,
count(distinct case when ticket_status !='已归档' then ticket_id end) order_inprogress,
count(distinct case when ticket_status !='已归档' and is_time_out ='是' then ticket_id end) order_overtime
from rnodbv3.v_m_cm5g_ticket_alarm_general
where curr_flag=true
and create_time>=cast('2022-10-01 00:00:00' as timestamp) and create_time<=cast('2022-10-31 00:00:00' as timestamp)
group by date) b on a.date=b.date

在这里插入图片描述
统计结果符合预期。

周粒度工单统计

在实际开发中,也是只需要传一个开始时间和结束时间这2个参数就行。

原mybatis中sql代码:
sql写法和15分钟粒度一样

select '故障' type,c.date,
coalesce(d.order_num,0) order_num,
coalesce(d.archived_num,0) archived_num,
coalesce(d.timeout_soon_num,0) timeout_soon_num,
coalesce(d.no_timeout_num,0) no_timeout_num,
coalesce(d.order_inprogress,0) order_inprogress,
coalesce(d.order_overtime,0) order_overtime
from
(select to_char(t,'yyyy-MM-dd') date
from generate_series(cast(#{startTime} as timestamp),cast(#{endTime} as timestamp),'1 week') t) c
left join
(select to_char(b.starttime,'yyyy-MM-dd') date,
count(distinct a.ticket_id) order_num,
count(distinct case when a.ticket_status ='已归档' then a.ticket_id end) archived_num,
count(distinct case when a.ticket_status !='已归档' and a.is_time_out !='是' and a.timeout_soon =true then a.ticket_id end) timeout_soon_num,
count(distinct case when a.is_time_out !='是' then a.ticket_id end) no_timeout_num,
count(distinct case when a.ticket_status !='已归档' then a.ticket_id end) order_inprogress,
count(distinct case when a.ticket_status !='已归档' and a.is_time_out ='是' then a.ticket_id end) order_overtime
from rnodbv3.v_m_cm5g_ticket_alarm_general a
left join
(select t as starttime ,t +'1 week' as endtime
from generate_series(cast(#{startTime} as timestamp),cast(#{endTime} as timestamp),'1 week') t
) b on <![CDATA[ a.create_time >=b.starttime and a.create_time <b.endtime ]]>
where a.curr_flag=true
<![CDATA[and a.create_time>=cast(#{startTime} as timestamp) and a.create_time<cast(#{endTime} as timestamp)+interval '1 week' ]]>
group by b.starttime
order by b.starttime) d on c.date=d.date

sql实际执行结果:
这里将ticket_id前的distinct去重删除是为了给你们方便比对统计结果是不是160条。

select '故障' type,c.date,
coalesce(d.order_num,0) order_num,
coalesce(d.archived_num,0) archived_num,
coalesce(d.timeout_soon_num,0) timeout_soon_num,
coalesce(d.no_timeout_num,0) no_timeout_num,
coalesce(d.order_inprogress,0) order_inprogress,
coalesce(d.order_overtime,0) order_overtime
from
(select to_char(t,'yyyy-MM-dd') date
from generate_series(cast('2022-08-01 00:00:00' as timestamp),cast('2022-10-31 00:00:00' as timestamp),'1 week') t) c
left join
(select to_char(b.starttime,'yyyy-MM-dd') date,
count(a.ticket_id) order_num,
count(distinct case when a.ticket_status ='已归档' then a.ticket_id end) archived_num,
count(distinct case when a.ticket_status !='已归档' and a.is_time_out !='是' and a.timeout_soon =true then a.ticket_id end) timeout_soon_num,
count(distinct case when a.is_time_out !='是' then a.ticket_id end) no_timeout_num,
count(distinct case when a.ticket_status !='已归档' then a.ticket_id end) order_inprogress,
count(distinct case when a.ticket_status !='已归档' and a.is_time_out ='是' then a.ticket_id end) order_overtime
from rnodbv3.v_m_cm5g_ticket_alarm_general a
left join
(select t as starttime ,t +'1 week' as endtime
from generate_series(cast('2022-08-01 00:00:00' as timestamp),cast('2022-10-31 00:00:00' as timestamp),'1 week') t
) b on a.create_time >=b.starttime and a.create_time <b.endtime
where a.curr_flag=true
and a.create_time>=cast('2022-08-01 00:00:00' as timestamp) and a.create_time<cast('2022-10-31 00:00:00' as timestamp)+interval '1 week'
group by b.starttime
order by b.starttime) d on c.date=d.date

在这里插入图片描述
可以看到这里是统计每周一到周日这7天的工单。2022-10-24刚好是周一,2022-10-31也是周一。结果也是符合预期。
在这里插入图片描述

月粒度工单统计

在实际开发中,也是只需要传一个开始时间和结束时间这2个参数就行。

原mybatis中sql代码:
sql写法和小时粒度、天粒度一样。

select '故障' type,a.date,
coalesce(b.order_num,0) order_num,
coalesce(b.archived_num,0) archived_num,
coalesce(b.timeout_soon_num,0) timeout_soon_num,
coalesce(b.no_timeout_num,0) no_timeout_num,
coalesce(b.order_inprogress,0) order_inprogress,
coalesce(b.order_overtime,0) order_overtime
from
(select to_char(t,'yyyy-MM') date
from generate_series(cast(#{condition.startTime} as timestamp),cast(#{condition.endTime} as timestamp),'1 month') t) a
left join
(select to_char(create_time,'yyyy-MM') date,
count(distinct ticket_id) order_num,
count(distinct case when ticket_status ='已归档' then ticket_id end) archived_num,
count(distinct case when ticket_status !='已归档' and is_time_out !='是' and timeout_soon =true then ticket_id end) timeout_soon_num,
count(distinct case when is_time_out !='是' then ticket_id end) no_timeout_num,
count(distinct case when ticket_status !='已归档' then ticket_id end) order_inprogress,
count(distinct case when ticket_status !='已归档' and is_time_out ='是' then ticket_id end) order_overtime
from rnodbv3.v_m_cm5g_ticket_alarm_general
where curr_flag=true
and create_time>=cast(#{condition.startTime} as timestamp) and create_time<cast(#{condition.endTime} as timestamp)+interval '1 month' ]]>
group by date) b on a.date=b.date

sql实际执行结果:
这里将ticket_id前的distinct去重删除是为了给你们方便比对统计结果是不是160条。

select '故障' type,a.date,
coalesce(b.order_num,0) order_num,
coalesce(b.archived_num,0) archived_num,
coalesce(b.timeout_soon_num,0) timeout_soon_num,
coalesce(b.no_timeout_num,0) no_timeout_num,
coalesce(b.order_inprogress,0) order_inprogress,
coalesce(b.order_overtime,0) order_overtime
from
(select to_char(t,'yyyy-MM') date
from generate_series(cast('2022-01-01 00:00:00' as timestamp),cast('2022-12-01 00:00:00' as timestamp),'1 month') t) a
left join
(select to_char(create_time,'yyyy-MM') date,
count(ticket_id) order_num,
count(distinct case when ticket_status ='已归档' then ticket_id end) archived_num,
count(distinct case when ticket_status !='已归档' and is_time_out !='是' and timeout_soon =true then ticket_id end) timeout_soon_num,
count(distinct case when is_time_out !='是' then ticket_id end) no_timeout_num,
count(distinct case when ticket_status !='已归档' then ticket_id end) order_inprogress,
count(distinct case when ticket_status !='已归档' and is_time_out ='是' then ticket_id end) order_overtime
from rnodbv3.v_m_cm5g_ticket_alarm_general
where curr_flag=true
and create_time>=cast('2022-01-01 00:00:00' as timestamp) and create_time<cast('2022-12-01 00:00:00' as timestamp)+interval '1 month'
group by date) b on a.date=b.date

在这里插入图片描述
可以看到这里是统计每月1号到月底的工单。结果也是符合预期。
在这里插入图片描述
好了,我得分享到这里就结束了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/604352.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaEE进阶(统一功能处理)6/2

目录 1.使用拦截器实现用户登录的校验功能 2.统一数据格式的返回 3.统一异常的返回 1.使用拦截器实现用户登录的校验功能 Spring拦截器 关键步骤1.实现HandlerInterceptor接口 2.重写preHeadler方法&#xff0c;在方法中编写自己的业务代码 将拦截器添加到配置文件中&#xf…

【剑指offer】二维数组中的查找(详细解析)

文章目录 题目思路代码实现 题目 题目链接入口&#xff1a;牛客&#xff1a;JZ4 二维数组中的查找 思路 1.核心考点 &#xff08;1&#xff09; 数组相关&#xff1a;二维数组&#xff08;矩阵&#xff09;。 &#xff08;2&#xff09; 特性观察&#xff1a;在一个二维数组…

如何使用宝塔面板搭建网站(最后一步!上传文件至宝塔面板)

这里就是我们搭建宝塔面板的最后一步了&#xff0c;把我们的PHP文件上传到宝塔面板上&#xff0c;就可以通过因特尔网络访问我们的网址了。 第一步&#xff1a;基础安装 必须是Linux服务器 不支持window服务器 最低要求配置1核1G当然再低些也能运行但是不建议 要求服务器环…

值得收藏 | 脑机交互作用研究

神经损伤和疾病对许多人的生活产生了巨大的影响&#xff0c;导致了许多运动障碍和日常任务无法独立完成。皮质假体系统通过脑机接口&#xff08;BCI&#xff09;接收一个动作命令来执行所需的位置&#xff0c;从而使得经历神经损伤的人能够实现部分功能恢复。BCI技术可以在侵入…

chatgpt赋能python:Python创建二维列表的方法

Python创建二维列表的方法 Python是一种高级编程语言&#xff0c;它的灵活性和功能强大的库使其成为数据科学和机器学习的最佳工具之一。其中一个常用的数据结构是二维列表&#xff0c;本文将介绍如何在Python中创建一个二维列表。 什么是二维列表&#xff1f; 在Python中&a…

华为OD机试真题 Java 实现【表示数字】【牛客练习题】

一、题目描述 将一个字符串中所有的整数前后加上符号“*”&#xff0c;其他字符保持不变。连续的数字视为一个整数。 数据范围&#xff1a;字符串长度满足1≤n≤100 。 二、输入描述 输入一个字符串。 三、输出描述 字符中所有出现的数字前后加上符号“*”&#xff0c;其…

arcgis for javascript中的TileLayer(缓存地图服务图层)

一、什么是图层 要理解TileLayer图层&#xff0c;咱要先搞清楚在arcgis中图层的概念&#xff1a; ArcGIS for JavaScript中的图层是数据的可视化链接。简单来说&#xff0c;它可以将数据显示在地图上。 图层是地图上的一个图形单元&#xff0c;可以是点、线、面、文本等&#…

复杂的HANASQL 列表转多行

一 前言 基于HANA的内存数据库的强大性能, SAP建议把业务逻辑下沉到HANA中计算.以便减少应用服务器的负担,让程序性能更好一些. SAP本身的一些复杂的业务逻辑比如MRP运算(MD01)也有了新的事务 MD01N (MRP LIVE),性能得以巨大的提升 报表类的数据分析程序尤其适用此原则. 动态报…

淘宝监控竞品sku数据接口

电商竞品数据监控查询可以通过以下几个步骤实现&#xff1a; 确定需要监控的竞品&#xff1a;首先需要明确自己店铺的产品定位和竞争对手&#xff0c;选择需要监控的竞品。 选择监控工具&#xff1a;根据需求和预算选择适合自己的电商竞品数据监控工具&#xff0c;例如谷歌分析…

nvm管理node的多版本,任意安装,切换不同nodejs版本

1.nvm安装包下载&#xff1a; https://github.com/coreybutler/nvm-windows/releases window操作系统选择安装包直接安装&#xff1a; 如果已经在使用的nodejs无需卸载&#xff0c;安装过程中会提示是否需要管理已经安装的版本&#xff0c;选择“是”。 2.安装完成之后&…

云计算——云计算部署形成及应用

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​ 目录 前言 一.云计算部署形式 1.私有云 &#xff08;1&#xff09;私有云优点 &#x…

计划

img { margin: auto; display: block } 优化器的作用是什么&#xff1f;例举一下神经网络中常用的优化器&#xff1f; 优化器作用&#xff1a;求出让损失函数最小化的参数。 常用优化器&#xff1a; 1、Adam 关联所有样本的梯度&#xff0c;便于求解全局最优解&#xff0c;始终…

有公网IP,如何设置端口映射实现访问?

很多中小型公司或个人会根据自身需求自建服务器&#xff0c;或者将自己内网的服务、应用发布到外网&#xff0c;实现异地访问&#xff0c;如远程桌面、网站、数据库、公司的管理系统、FTP、管家婆、监控系统等等。 没接触过的人可能会觉得这个很难&#xff0c;实际上使用快解析…

国内镜像+JDK下载地址+IDEA专业安装版和免安装版下载地址

一、OracleJDK下载地址 JDK版本Oracle JDK新增特性官网原版下载地址JDK 1.0-已下线JDK 1.1-已下线JDK 1.2-已下线JDK 1.3-已下线JDK 1.4-已下线JDK 5.0自动装箱、泛型、枚举、增强的for循环、注解等已下线JDK 6JDBC 4.0、Pluggable Annotation Processing API、JAX-WS、StAX等…

Redis底层学习(六)—存储类型-ZSet篇

这里写目录标题 结构特点具体服务器操作命令底层结构应用场景 结构特点 适⽤场景&#xff1a;存储不重复且有序需求的数据&#xff0c;⽐如&#xff1a;学⽣的⾼考成绩。 它的内部采⽤“ 跳跃列表 ”实现&#xff0c;根据score进⾏排序 具体服务器操作命令 添加元素到zset中…

RedditVideoMakerBot 视频制作机器人自动生成视频搭建教程

https://github.com/elebumm/RedditVideoMakerBot搭建教程 RedditVideoMakerBot视频制作机器人 有些在抖音、快手上的视频获得了数百万的观看次数&#xff0c;你仔细分析他们的视频&#xff0c;他们唯一做的原创事情收集材料、然后拼接在一起。尤其是一些新闻类的视频&#xff…

深度学习-RepVGGNet

文章目录 前言一、RepVgg简介二、为什么训练时采用多分支结构三、为什么推理时使用单分支结构四、结构重参数化1、融合Conv2d和BN 前言 看yolonas代码&#xff0c;发现有QARepVgg网络&#xff0c;完全不懂&#xff0c;所以来补课&#xff0c;先看了RepVGG 这篇文章主要来自于霹…

模六十计数器(三)

文章目录 前言一、代码模板二、Verilog程序1、顶层模块2、计数模块3、显示模块 三、Testbench程序四、仿真波形五、实测结果总结 前言 又隔了将近一年&#xff0c;学习明德扬编程规范&#xff0c;重新编写模六十计数器程序&#xff0c;使其符合规范&#xff0c;并采用模板化与…

阿秀去面腾讯了(社招两年面试经验)

作者&#xff1a;阿秀 校招八股文学习网站&#xff1a;https://interviewguide.cn 小伙伴们大家好&#xff0c;我是阿秀。 前段时间说了自己换工作的事&#xff1a;阿秀离职了&#xff0c;虽然最后选择去了外企&#xff0c;但在换工作期间也看了不少机会&#xff0c;基本国内的…

独立开发变现周刊(第89期):一个 AI 小工具,两个月内赚7.3万美元

分享独立开发、产品变现相关内容&#xff0c;每周五发布。 目录 1、privateGPT: 可以和本地文档进行交互的聊天机器人2、chatbutler: 无代码可视化创建聊天机器人3、CommaFeed&#xff1a;可以自托管RSS阅读器开源项目4、roop: 一键深度换脸5、deeplearning: 吴恩达在推特上宣布…