首页
学习
活动
专区
圈层
工具
发布

通过常见的业务掌握SQL高级功能

前言: 本文使用的窗口函数需要Mysql8 阅读需要10分钟,题目有一定难度 1、窗口函数 基本语法: over (partition by order by 取每组最大值 案例:按课程号分组取成绩最大值所在行的数据 select 课程号,max(成绩) as 最大成绩 from score group by 课程号; 分组取每组最小值 案例:按课程号分组取成绩最小值所在行的数据...这样使用窗口函数的作用就是,可以在每一行的数据可以直观的看到,截止到本行数据,统计数据是多少行,同时可以看到每一行数据,对整体统计数据的影响。 7、如何在每个组里面比较 ?...由于这里可以通过preceding关键字调整作用范围,在以下场景中非常适用: 在公司业绩名单排名中,可以通过移动平均,直观地查看到与相邻名次业绩的平均、求和等统计数据。...: 方法1,使用前面窗口函数案例来实现 方法2,使用关联子查询 这次的题目和知识点比较难,大家可能会需要花几个小时理解和尝试,加油!

1.6K41

我有 5种接口流量监控方案,5种!性能、成本、复杂度全面对比

就像公司打卡,你 8:59 到了,打卡机 9:00 重置,系统硬是把你算成下一个小时的人了。 方案二:滑动窗口计数器(懒加载优化版) 滑动窗口能解决时间边界问题。...有序集合(ZSET)比简单计数器厉害的地方是,它能按时间戳自然排序,一个接口所有时间点的调用数据都在一个结构里,查询很方便。...这设计很巧妙:即使服务重启,也不会丢失统计数据。 举个例子:假设一个接口 10 分钟内每分钟调用 100 次。...(分钟级) Prometheus - 长期趋势和多维分析(小时/天级) 具体实现: @Service publicclass HybridApiMonitor {     @Autowired     ...= 512MB 接口数 = 2GB 接口数 > 10万:建议使用Redis方案 2.Redis 分布式统计: 按每个接口每分钟 100 字节估算: 1千接口,保留

32410
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SPL 实现电力高频时序数据实时存储统计

    系统原结构图为: 系统中,用户期望的统计响应延迟为:从20万个测点中任取100个测点,统计频率最高可能每隔若干秒调用一次,从总时间跨度中统计任意一天的数据,预期执行时间在1分钟内,另外还会有少许离线任务...经测试,通过RESTful接口从数据中台取数,取出100个测点一天的数据量就需要10分钟时间,还没有开始计算,取数的时间已经远远超出了完成计算的预期时间。...第一层,十分钟内的热数据通过接口读入内存;第二层,每过10分钟,将过去10分钟的内存数据按测点、时间有序保存到外存;第三层,每过一天,将过去24小时内的所有每10分钟的数据按测点、时间有序归并。...因为数据本身是通过kafka接口获取的,另外数据可能有一定的延迟,不适合每秒取数即写出。...优化之后的测试结果如下(耗时为毫秒): 测点数时间段 10 50 100 10分钟 467 586 854 1小时 1739 3885 4545 6小时 2599 7489 13138 1天 4923

    1.7K40

    PromQL全解析

    5分钟 时间偏移 通过offset 通过 offset将时间倒退5分钟,即查询5分钟之前的数据。...查看上下文交换次数计数器在5分钟内复位次数 resets(node_context_switches_total[5m]) 日期与时间管理 dayofmonth() day_of_month(v=vector...)如果样本值是utc时间,则返回这个时间所属月份的天数(28-31) hour() hour(v=vector(time())instant-vector)如果样本值是utc时间,则返回这个时间所属一天中的第几个小时...(1-13) minute() minute(v=vector(time())instant-vector) 如果样本值是utc时间,则返回这个时间所属小时中的第几分钟(1-59) month() month...排序 sort() sort(v instant-vector)返回按样本值升序排序的向量元素。 sort_desc() 与sort()相反,按降序排序。

    4.3K31

    算法创作|调手表问题解决方法

    在 M78 星云,时间的计量单位和地球上不同,M78 星云的一个小时有 n 分钟。 大家都知道,手表只有一个按钮可以把当前的数加一。...在调分钟的时候,如果当前显示的数是 0 ,那么按一下按钮就会变成 1,再按一次变成 2 。如果当前的数是 n - 1,按一次后会变成 0 。 作为强迫症患者,小明一定要把手表的时间调对。...小明想,如果手表可以再添加一个按钮,表示把当前的数加 k 该多好啊…… 他想知道,如果有了这个 +k 按钮,按照最优策略按键,从任意一个分钟数调到另外任意一个分钟数最多要按多少次。...注意,按 +k 按钮时,如果加k后数字超过n-1,则会对n取模。 比如,n=10, k=6 的时候,假设当前时间是0,连按2次 +k 按钮,则调为2。...因此此种方法是不可行的,所以便考虑广搜的解决方式,每次加1,遇到被整除的地方,原先的计数器置零,整除计数器加1记录每次整除后的数值,求出最大的哪个数就是

    36840

    PHP做数据统计分析

    所以,如果要出按小时统计数据,则必须把前一个小时数据处理完之后才可以处理后面的数据;前一天的数据处理完之后才可以处理后一天的数据。 3、团队中都擅长的是PHP。...原始表记录数比较多,为了尽可能的减少与原始表的耦合,这里做了一个转移的动作,将原始表的最新安装、回访数据转移到近期安装、回访表中。近期表只保留3天的数据,即近期回访表的数据会维持在2000w左右。...可根据小时报表出天的报表,或者出特定字段的报表等等,这是很方便的,同时数据量也将成倍的减少。...后来重新导,导入的表未建立索引,1000w数据大概需要9分钟左右。不过后来增加索引花了大概2个半小时。...对原始数据的处理也是一个问题,为了提升效率,比较大的数据采用多进程跑,比如开10多个进程同时跑一个小时的数据,二三十万数据3分钟就搞定。

    2.2K20

    技巧:Excel用得好,天天没烦恼

    今天一起涨姿势,学会下面这些神技,你的Excel分分钟超过90%的同事! 还在把Excel仅仅当成一个画表格的工具? 图样图森破。 看看下面这张图。 ?...它显示的是美国纽约曼哈顿的24小时人口活跃图。 分析公司DarkHorse Analytics 从美国劳工统计处获得数据,并制作了这张二十四小时会唿吸的地图,显示曼哈顿的工作与在宅人口。...快速求和?用 “Alt + =” Excel的函数功能非常强悍,求和应该是最常用到的函数之一了。只需要连续按下快捷键“alt”和“=”就可以求出一列数字的和。 ? 2....NETWORKDAYS和WORKDAY函数 如果你的老板问你,今天距离元旦还要工作多少天? 你难道真的要对着日历一天天去数、一月月去算吗? 太年轻。...SUBTOTAL函数可谓是全能王,可以对数据进行求平均值、计数、最大最小、相乘、标准差、求和、方差。 想算什么算什么有木有! 7.

    2.7K40

    ELK Stack 核心原理深度剖析:从日志流转到可视化的全链路机制

    ,如 “错误日志总数”“平均响应时间”,对应 Kibana 中的 “数值”“ gauge(仪表盘)” 可视化;桶聚合(Bucket Aggregation):按指定维度对日志分组,如 “按小时分组统计访问量...”“按错误类型分组统计数量”,对应 Kibana 中的 “折线图”“柱状图”“饼图”;示例:创建 “每小时 Nginx 4xx 错误数” 的折线图,Kibana 会向 ES 发送如下聚合查询:GET /...: "数据库连接失败"),Kibana 向 ES 发送查询请求,ES 通过倒排索引快速返回匹配的日志详情;指标聚合:在 “Visualize” 页面创建图表,例如 “按小时统计错误日志数”,Kibana...触发 ES 的date_histogram聚合查询,获取每小时的错误数并生成折线图;链路追踪:通过trace_id查询某一用户请求的全链路日志(如 “用户下单失败” 的请求,关联 “网关 - 订单服务...“错误日志数 5 分钟内超过 100 条”),当触发阈值时,Kibana 通过邮件、短信或 Webhook 通知运维人员,实现 “主动故障预警”。

    14610

    程序员实用工具,推荐一款代码统计神器GitStats

    阅读全文需7分钟,工具很实用。 1. 前言 对于Git项目开发,有一些可视化的工具,如gitk,giggle等,来查看项目的开发历史。...活跃性:每天中每小时的、每周中每天的、每周中每小时的、每年中每月的、每年的提交量。 作者数:列举所有的作者(提交数,第一次提交日期,最近一次的提交日期),并按月和年来划分。...“3206天,其中1400天是活跃天.”...作者数:如645,每个作者平均提交次数9.2次。 除此之外,还包括了: 1. 时间维度的效率分析:每天中每小时的、每周中每天的、每周中每小时的、每年中每月的、每年的提交量。 2....提交者维度的活跃度统计:列举所有的作者(提交数,第一次提交日期,最近一次的提交日期),并按月和年来划分。 3. 按照文件数:按日期划分,按扩展名名划分。 4.

    2.5K30

    Access统计函数和数字函数

    一、统 计 函 数 1、Sum求和函数,Sum([字段名]),计算指定字段值的总和。 2、Avg求平均值函数,Avg([字段名]),计算指定字段值的算术平均值。...3、Count计数函数,Count([字段名]),计算指定字段的记录数。 4、Max求最大值函数,Max([字段名]),计算指定字段中一组值的最大值。...创建查询设计,添加图书表,添加单价字段,对单价字段,分别使用SUM([单价])来求和,AVG([单价])求单价, COUNT([单价])来计数, MAX([单价])求单价的最大值。...二、数 字 函 数 1、绝对值函数 Abs(),例如:Abs(-20/2)=10 2、向下取整 Int(),参数为负值时返回小于等于参数值的最大负数。...示例 下面通过简单示例来介绍下,在上个示例平均值的基础上嵌套一个取整int函数。 ? 在上个示例保存的查询中,修改字段的表达式,为INT(AVG([单价])),运行得到查询结果。平均值变为整数。

    4.7K20

    日期

    阿时区为多个的被编码分钟从UTC偏移量,该计数分钟的时间部分的数量日期时间应该从通用协调时间(UTC)偏移。...与 UTC的最小偏移分钟数为 -840,表示 UTC 偏移量为 -14:00,或比 UTC 早 14 小时。与 UTC的最大偏移分钟数为 840,对应于 14:00 的 UTC 偏移。...≤ 23 0 ≤ 分钟 ≤ 59 0 ≤ 秒 ≤ 59 -14 ≤ 偏移小时 ≤ 14 -59 ≤ 偏移分钟 ≤ 59 此外,日期必须对所选的月份和年份有效,如果 offset-hours = 14,...可以存储在持续时间中的最小值是 -9,223,372,036,854,775,808 个滴答声,或 10,675,199 天 2 小时 48 分 05.4775808 秒的时间倒退。...一个持续时间中可以存储的最大值是 9,223,372,036,854,775,807 个滴答声,或 10,675,199 天 2 小时 48 分 05.4775807 秒向前推进。

    2K20

    腾讯云Redis新监控(5秒粒度)推荐配置

    按1小时重复告警 出流量使用率 >= 80%,持续1分钟,按1小时重复告警 出流量限流触发 >= 1Count,持续5秒,按1小时重复告警 入流量使用率 >= 80%,持续5秒,按1小时重复告警 入流量限流触发...>= 1Count,持续5秒,按1小时重复告警 连接使用率 >= 80%,持续1分钟,按1小时重复告警 Mget请求数 >= 1000Count/s,持续1分钟,按1小时重复告警 CPU使用率 >=...80%,持续1分钟,按1小时重复告警 Redis节点告警触发条件推荐设置(仅供参考) 总请求 >= 60000Count/s,持续1分钟,按1小时重复告警 CPU使用率 >= 80%,持续1分钟,按1小时重复告警...复制延迟 >= 1024000Bytes,持续1分钟,按1小时重复告警 慢查询 >= 50Count,持续1分钟,按1小时重复告警 内存使用率 >= 80%,持续1分钟,按1小时重复告警 key过期数...>= 30000Count,持续1分钟,按1小时重复告警 key驱逐数 >= 10000Count,持续1分钟,按1小时重复告警 腾讯云新版本监控(5秒粒度)简要介绍 腾讯云新版本监控(5秒粒度)已经灰度

    2.1K101

    小红书笔记详情 API 实战指南:从开发对接、场景落地到收益挖掘(附避坑技巧)

    玩小红书的都知道,平台上的 “种草” 笔记藏着海量用户需求和商业机会。但对开发者、运营和品牌方来说,怎么高效拿到笔记的标题、互动数据、作者信息这些核心内容,一直是个头疼事。...接口核心能力小红书笔记详情 API 是开放平台提供的 “数据钥匙”,能直接拉取单条笔记的全量信息,比如:基础内容:标题、正文、配图列表、发布时间互动数据:点赞、收藏、评论数、转发量作者信息:昵称、头像、...降本增效型(适合企业 / 团队)运营效率:以前人工统计 1000 条笔记要 2 天,用 API + 自动化脚本 10 分钟搞定决策成本:凯乐石用接口分析 67 座山峰的登山人群需求,做了 67 套细分内容...生态衍生型(适合长期玩家)结合小红书 “种草直达” 新功能,能玩出更高级的玩法:做 “种草效果监测工具”,对接淘宝、京东的交易数据,帮品牌算清楚 “小红书种草带来多少天猫销量”按转化效果收费,抽成 1%...性能优化技巧缓存策略:热门笔记数据缓存 1 小时,普通笔记 6 小时(用 Redis 存,减少重复调用)批量处理:把 1000 个 note_id 分 10 批调用,每批间隔 2 秒,避免触发限流字段筛选

    33210

    极客DIY开源方案分享——智能家居你也可以做,何不DIY个自动窗帘升降控制系统?(纪念我的职业生涯处女作、曾获校赛一等奖作品、上古汇编语言编程)

    三种工作方式可以方便地进行选择,当选择时间控制的方案时,数码管还能显示当时小时和分钟时间。...2.2.2 步进电机子程序设计 步进电机程序设计的主要任务有三点: 1)判断旋转方向; 2)按顺序传送控制脉冲; 3)判断所要求的控制步数是否传送完毕。...标志1天时间计满,把他们的值放到存储单元的指定单元。...LJMP LOOP RET ;*********************************************** ;定时器中断服务程序,对秒,分钟和小时的计数...LJMP LOOP RET ;*********************************************** ;定时器中断服务程序,对秒,分钟和小时的计数

    1.9K30

    Redis在Php项目中的实际应用场景

    前言 一些案例中有的同学说为什么不可以用string类型,string类型完全可以实现呀 我建议你看下我的专栏文章《Redis高级用法》,里面介绍了用hash类型的好处 商品维度计数 对商品喜欢数...,评论数,鉴定数,浏览数进行计数 说起电商,肯定离不开商品,而附带商品有各种计数(喜欢数,评论数,鉴定数,浏览数,etc) Redis的命令都是原子性的,你可以轻松地利用INCR,DECR等命令来计数。...对用户动态数、关注数、粉丝数、喜欢商品数、发帖数等计数 用户维度计数同商品维度计数都采用 Hash....2次、5分钟评论少于5次等(更多机制/规则需要结合drools ) 常规sorted set将最近一天用户操作记录起来 (为什么不全部记录?...# ttl 30天之内按秒数计算 30天之外以timestamp为准 最新列表&排行榜 用于记录用户刚刚喜欢的商品最新列表or排行榜 等业务场景 商品最新列表-sorted set结构呈现

    75330

    基于ESB和API网关的服务运行监控分析和实践

    对于实时监控往往需要做到至少分钟级的服务运行心跳监控和数据汇总分析,这个数据本身也是进行后续类似服务预警,服务限流熔断的一个关键基础数据。因此实时监控的时间周期可以从分钟到小时到天的粒度即可。...而对于非实时的统计分析,往往需要能够分析到年这个跨度,因此对于时间周期维度最小单位到天即可,即从天到月到年的汇总。 当然准实时监控统计形成的按天数据本身刚好作为非实时统计分析的最细粒度数据输入。...实例数据聚合 对于实例数据本身也可以进行聚合,最简单的就是Count计数聚合,其中类似服务运行次数,单位时间的并发数,服务成功失败率,异常数等都基于Count计数。...比如从最细粒度的分钟,汇总到小时,天,月,年的各种时间维度。...这个功能实际和BI里的支持数据钻取功能类似。 服务运行多维度聚合分析 在前面介绍了最基本的服务运行查询,服务统计分析后,再来看下基于实际的业务场景驱动,需要如何对服务运行进行多维度的聚合分析。

    12800

    (课程)基于HBase做Storm 实时计算指标存储

    举个例子,假设我们有客户 10w,计算指标假设 100 个,5 个 ISP,30 个地域,这样就有亿级以上的 Key 了,我们还要统计分钟级别,小时级别,天级别,月级别。所以写入量和存储量都不小。...如果是一分钟粒度,会有 1440 个,如果是五分钟粒度的会有 288 个,如果是小时粒度的,会有 24 个。不同的粒度,我们会建不同的表。...曲线的最小粒度是小时,小时的值是取 12 个五分钟里最高的值,我们看看需要取多少条记录完成这个查询。...我取过两天的,整个 HTTP 响应时间可以控制 50ms 左右(本机测试)。...列里存的是某个 key 在某天的某个一分钟里产生的数。对于 HBase 理论上其实我也是不怕 key 多的,它本来就是为了海量存储设计的。

    96430

    redis入门知识第8篇-sorted_set数据类型的基本操作

    按条件获取数据 相关符号如下: +inf: 表示大于任何数 -inf: 表示小于任何数 (: 左开区间 ): 右开区间 指令格式 # 正序 根据score查询 zrangebyscore key min...按条件删除 # 根据索引删除数据 zremrangebyrank key start stop # 根据score删除数据 zremrangebyscore key min max 2.6....我们还可以指定交叉的元素 取最大值(max)还是 最小值(min),而不是 求和值(sum),如下指令 # 求 s1、s2、s3 的交集保存到 ss1 中,取交叉元素的最大值 zinterstore ss1...例如一小时内、一天内、一周内、一个月内、季度内、年度内等,操作时逐级提升,将即将操作的若干个任务纳入到1小时内处理的队列中。...解决方案如下: 因score长度受限,需要对数据进行截断处理,尤其是时间设置为小时或分钟级别即可 先设定订单列表,后设定发起角色类别,整体score长度必须是统一的,不足则补0。

    63920
    领券