【SQL】每类视频近一个月的转发量/率

【问题】

统计在有用户互动的最近一个月(按包含当天在内的近30天算,比如10月31日的近30天为10.2~10.31之间的数据)中,每类视频的转发量和转发率(保留3位小数)。

【数据】

用户-视频互动表 tb_user_video_log
(uid-用户ID, video_id-视频ID, start_time-开始观看时间, end_time-结束观看时间, if_follow-是否关注, if_like-是否点赞, if_retweet-是否转发, comment_id-评论ID)

短视频信息表 tb_video_info
(video_id-视频ID, author-创作者ID, tag-类别标签, duration-视频时长(秒), release_time-发布时间)

输出示例数据:tag,retweet_cut,retweet_rate

【要点】

  1. 获得两个时间戳之间相差多少天:datediff(x1,x2)
  2. 由题目中的例子看出,相差30天两个时间相减计算结果实际上是29天,很容易犯错
  3. 题目描述的比较模糊,“有用户互动的最近一个月” 是每类视频分别计算,还是所有的类型放一起看?面试中如果碰到这类题可以跟面试官沟通来明确需求。

【解答】

select b.tag,  
       sum(if_retweet) as retweet_cut,  
       round(sum(if_retweet)/count(*),3) as  retweet_rate
from tb_user_video_log a left join tb_video_info b on a.video_id=b.video_id
where datediff(a.start_time,(
    select start_time 
    from tb_user_video_log 
    order by id desc
    limit 1))<=29
group by b.tag
order by retweet_rate desc

【知识扩充】

sql 计算时间差 datediff & timestampdiff

阅读以下内容:“一种面向通信业务QoS保障的HPLC和HRF混合组网路由技术 在电力系统及工业物联网中,传统组网技术存在以下问题:1、单一通信模式局限性:HPLC易受电力线噪声干扰,HRF在复杂环境中存在信号衰减,单一链路难以满足高可靠、低时延需。2、QoS保障不足:现有路由算法未充分融合链路质、业务优先级、动态负载等因素,导致关键业务(如电网差动保护)时延抖动或丢包。3、容错能力弱:链路故障时切换效低,无法满足电力系统毫秒级恢复要。为了满足可靠路由要,本发明提供一种面向通信业务QoS保障的HPLC和HRF混合组网路由技术,解决混合组网中业务QoS保障不足、链路资源分配不均衡及故障恢复效低的问题。 1.1系统模型 网络拓扑搭建,部署台区双模异构场域网,包含1个中央协调器(CCO)和多个站点(6≤N≤40),站点间通过HPLC链路和HRF链路连接。定义HPLC链路参数:信噪比,容,链路占用,HRF链路参数:场强,时延、丢包。业务分类与QoS需定义:关键级业务:时延≤10ms,可靠性≥99.999%;高优先级业务:带宽≥50Mbps;普通级业务(如数据采集):动态分配剩余资源。双模异构场域网拓扑图如图1.1所示。 图1.1双模异构场域网拓扑图 网络拓扑结构:中央协调器(CCO):位于网络中心,负责协调通信。站点(STA):20个站点环形分布。链路类型根据STA能力动态选择,0级STA仅HPLC链路(实线);1级STA双模链路(点划线);2级STAHRF链路(虚线)。 1.2多维QoS驱动的链路评估 我们需要综合考虑HPLC和HRF两种链路的多个参数(信噪比、容、链路占用、场强、时延、丢包)以及不同业务级别(关键级、高优先级、普通级)的QoS需。设计思路:1.构建多维QoS评估矩阵:将链路参数映射到业务QoS需的关键指标(时延、可靠性、带宽等)2.设计链路质综合因子3.数据预处理4.异常值过滤。 HPLC链路综合因子的定义如下: (1.1) 其中为信噪比,反映链路抗干扰能力;为链路占用,衡负载情况;为可用带宽,决定数据传输速。动态权重调整:通过模糊逻辑控制器实时调整。例如实时性业务=0.6(侧重时延)=0.3(负载均衡)(带宽);例如大流业务(如视频监控)(带宽优先)。 HRF链路综合因子定义如下: (1.2) 其中为场强(负值),绝对值越大信号越稳定;为时延,由传输距离和调制方式决定。权重系数通过模糊逻辑控制器动态调整,例如实时性业务中侧重时延就需要=0.6 进行数据预处理:归一化参数至0,1区间。 时延归一化为 (1.3) 带宽归一化为 (1.4) 丢包归一化为 (1.5) 异常值过滤:使用滑动窗口检测突增丢包,临时剔除异常链路。 1.3确定多目标路径规划 定义优化目标与权重分配,确定需优化的QoS参数,包括但不限于:时延、带宽、利用、丢包、链路稳定性;根据业务类型动态调整目标权重如实时性业务、大流业务、普通业务。实时数据采集与预处理,如HPLC链路参数:信噪比、链路占用、可用带宽; HRF链路参数:场强、时延、丢包。数据预处理:将不同纲参数(如时延ms、带宽Mbps)标准化至[0,1]区间;构建多目标优化函数,综合评分模型,结合多个QoS目标构建加权评分函数: (1.6) 其中 为HPLC/HRF链路时延、为网络总带宽容、为路径丢包乘积。通过Dijkstra-ant算法寻找多目标路径规划。基于预计算的冗余路径库,选择健康度最高的备用路径: (1.7) 或者仅替换故障链路,避免全局重规划带来的开销。 (1)实时性业务 实时性业务如视频会议、在线游戏、工业控制对QoS有严格要,包括低延迟、高可靠性和带宽保证。QoS优化路径规划的核心目标是在混合网络中选择最佳数据传输路径,以最小化延迟、避免拥塞,并优先处理实时流。在实时性业务中链路稳定性占30%,时延占25%,带宽占20%,丢包占15%,利用占10%。稳定性是基石,时延直接影响用户体验质;带宽支撑流,丢包需控制以降低重传;利用权重最低,避免过度优化引发拥塞。 (2)大流业务 大流业务如电商秒杀、社交网络热点事件、实时支付系统需处理高并发请、保障低延迟和高可用性。其核心架构设计围绕流管控、资源弹性、数据一致性展开。在高流业务中,权重分配需根据业务类型动态调整。一般优先级顺序为:链路稳定性 > 时延 > 带宽 > 丢包 > 利用。 (3)普通业务 在普通业务场景下,网络性能指标的权重分配需以业务连续性和操作流畅性为核心目标。基于典型业务特征为高频次、标准化、低决策复杂度,各指标优先级及依据如下:链路稳定性权重为35%,因为普通业务依赖持续网络连接如POS交易、库存同步,短暂中断即导致业务停滞。可以部署双链路冗余进行优化。时延权重为25%,因为普通业务需实时交互(SQL查询、订单提交),时延阈值建议 ≤100ms。丢包权重为20%,因为普通业务数据多为小包传输比如交易请、指令,丢包导致重传增加时延,可以启用TCP重传优化,避免网络拥塞。带宽利用权重为15%,因为普通业务带宽需稳定,超额配置造成浪费,可以通过动态带宽分配来优化。 改进的混合算法Dijkstra-Ant算法如下: Dijkstra-Ant算法是一种融合Dijkstra算法的确定性搜索和蚁群算法的启式优化的混合路径规划方法。其核心思想是利用Dijkstra算法的高效性为蚁群算法提供初始引导,再通过蚁群算法的群体智能优化全局路径。在单独的Dijkstra算法中虽然容易快速找到初始的最短路径,但是容易陷入局部最优。在单独的蚁群算法中,虽然可以通过信息素机制实现全局的搜索,但是在初期的时候搜索盲目,需要花费大的时间。这里用Dijkstra路径初始化信息素的分布,引导蚁高效搜索可以提高准确性和最优性,从而来确定多目标的路径规划。 Dijkstra-Ant算法具体步骤如下: 步骤1:基于Dijkstra的初始路径生成:针对不同QoS目标(时延、带宽、可靠性),分别使用Dijkstra算法生成单目标最优路径。以链路时延为权重,计算源节点到目标节点的最短路径;以链路带宽倒数为权重(带宽越大,权重越小),生成带宽最优路径;以链路丢包为权重,选择丢包最低的路径。得到三条初始路径,作为蚁群算法的候选解。 步骤2:蚁群算法初始化与信息素引导:首先信息素初始化,为Dijkstra生成的初始路径对应的边设置较高初始信息素浓度,其他边保持基础信息素浓度。然后进行启发式信息融合,定义启发式信息,结合Dijkstra路径的QoS参数: (1.8) 其中为权重系数,与Dijkstra路径的目标一致。 步骤3:群路径搜索与动态调整:路径选择规则,蚂蚁以概选择下一跳节点,概公式为 (1.9) 优先探索Dijkstra初始路径覆盖的链路,同时保留随机性以发现新路径。信息素更新策略:对Dijkstra初始路径进行信息素增强,确保其被优先保留,根据蚁群搜索的新路径动态调整信息素,平衡探索与利用。 步骤4:多目标优化与帕累托解筛选:综合时延、带宽、可靠性构建多目标评分: (1.10) 帕累托前沿构建:在迭代过程中收集所有非劣,结合Dijkstra初始路径,形成最终的候选路径集。 步骤5:动态网络适配与增更新:链路状态监控,实时监测链路时延、带宽、丢包变化。增式Dijkstra重计算,若局部链路状态变化(如单链路故障),仅对受影响区域重新运行Dijkstra算法,更新初始路径。将新路径反馈至蚁群算法,调整信息素分布。轻级蚁群迭代,在网络变化较小时,仅执行少蚁群迭代(如10次),快速收敛到新最优路径。 Dijkstra-Ant算法流程图如图1.2所示 图1.2 Dijkstra-Ant算法流程图 1.4构建成本函数 (1)可靠性分析 为了确保数据在进行传输过程中的可靠性,首先需要计算出源到目的节点之间路由路径的可靠性,从而确定满足业务 QoS 需的最优路径和路径数。相邻节点之间的链路质、冗余的路径数以及数据的重传次数等因素都会影响数据传输可靠性。因为FHPLC 采用的调制方式为 QPSK,无线通信采用的调制方式为 2FSK,在两种不同的调制方式下,信噪比与误码之间的对应关系分别表示如下: (1.11) (1.12) 其中为信号的平均能,为平均噪声功。我们假设需要传输大小为Ta比特的数据包,那么FHPLC与无线两种传输方式下出现k个误码的概分别如下: (1.13) (1.14) 信噪比为Y 时FHPLC与无线传输的丢包定义如下: (1.15) (1.16) 假设一次传输有R轮,用相邻节点之间发送一次数据包传输成功的概来衡链路可靠性,表示如下: (1.17) (1.18) 业务路由路径的可靠性是经过的节点和相邻节点间链路可靠性的乘积,为了方便计算,假设网络中所有的节点都是可靠的,可靠性均为1,那么业务路由路径的可靠性表示如下 (1.19) 业务经过L条路径能够传输成功的概计算方法如下所示: (1.20) 定义为业务允许的最小可靠性要,当业务使用一条或多条路由路径进行转发时,需要满足的传输可靠性的约束条件如下: (2)时延分析 端到端时延定义为数据从源节点到目的节点所经过的时延累计和,不同类型的业务对于时延的要不同,业务的路由路径的端到端时延表示如下 (1.21) 为链路的时延,计算方法是数据包大小与链路吞吐的比值,定义为业务允许的最大端到端时延要,当业务使用路由路径进行转发时的端到端时延应该不大于可以容忍的时延上限,需要满足的时延约束条件如下: (1.22) (3)带宽分析 带宽分析:链路的带宽容表示单位时间内能够传输的比特数,链路上的流是链路上实时传输的负载。与带宽定义有所不同,吞吐是单位时间内成功发送的分组、字节、比特等信息的数,计算的是实际链路中单位时间内能正确传输的比特数代表链路的带宽容,代表链路的已使用带宽,表示链路的可用带宽,业务的一条路径 的端到端可用带宽是该条路径上包含的链路可用带宽的最小值,具体公式表示如下 (1.23) (1.24) 综合考虑通信节点的流处理能力以及通信链路的使用情况,将链路的带宽可用度定义如下 (1.25) 其中表示链路的重要度,其具体的公式为 (1.26) 表示网络中的节点s到t之间的最短路径的数, 表示所有最短路径中经过链路的最短路径的数。 ,分别为连接链路的两个节点,的节点可用度,公式如下: (1.27) 表示节点的重要度。现考虑节点的度中心性与介数中心性来计算节点的重要度。I表示节点的邻居节点集合,上述公式显示,节点的可用性与其重要性以及连接到节点的链路带宽之比密切相关。简而言之,节点的可用性与其处理流的能力成正比。当网络的节点总数为N时,节点的度的最大值不超过N-1,节点度中心性的归一化公式为: (1.28) 当网络的节点总数为N时,节点的介数公式表示如下: (1.29) 表示网络中的节点s到t之间的最短路径的数,表示所有最短路径中经过节点的最短路径的数。的最大值为, 该最大值表示网络中每个节点对至少有一条通过节点的最短路径,节点介绍中心性的归一化公式如下所示: (1.30) 所以节点的重要度具体公式可以表示如下: (1.31) 业务的带宽应该不大于路由路径的可用带宽容,需要满足的带宽约束条件如下: (1.32) 流守恒条件分析: 业务从源节点出发,经过路由转发节点到达目的节点这个过程流是守恒的,业务流进一个节点的流与流出这个节点的流是相等的,网络中流守恒约束条件如下: (1.33) 综合考虑将时延、可靠性、带宽可用度这三个参数作为评价指标构建成本函数, 成本函数决定了链路的成本,表示如下: (1.34) 其中、、分别表示时延、可靠性和带宽的权重因子,在对路由路径的质进行评估时,可对权重因子进行调节以适应不同业务的服务质、、满足下式:给定一组具有时延、可靠性和带宽约束的业务,对任一业务,研究目标是在满足多个 QoS 参数约束条件的情况下通过最小化成本函数Cost来寻找业务源到目的节点之间一条或多条最优通信路径问题,目标函数如下: (1.35) 约束条件如下: C1: C2: (1.36) C3: C4: 其中,C1为流守恒约束;C2为端到端的通信时延约束,表示业务的端到端时延应该小于业务可以容忍的时延上限;C3为可靠性约束,表示业务的端到端可靠性大于业务的最小可靠性要;C4为带宽约束,表示业务的带宽小于路由路径的可用带宽容。”帮我用matlab2023b给出一些仿真建议
最新发布
06-22
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值