问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql有窗口函数吗

发布网友 发布时间:2022-04-30 16:37

我来回答

2个回答

热心网友 时间:2022-04-09 22:11

开窗函数就有点麻烦了。
源代码:select t.*, ROW_NUMBER() OVER( PARTITION BY t.ticket_type ORDER BY t.open_ticket_time DESC ) as rn
from
term t
where
t.ticket_type in(
6, 5, 0, 1, **, *, **, **, *2, 2, 3, 4, 8, 7
)
and t.term_status >= 5
这个代码的意思是根据open_ticket_time倒序的顺序将ticket_type 是( 6, 5, 0, 1, **, *, **, **, *2, 2, 3, 4, 8, 7)还有term_status >= 5的数据对ticket_type 进行分组后排名ROW_NUMBER() 。

热心网友 时间:2022-04-09 23:29

一直以来,MySQL 只有针对聚合函数的汇总类功能,比如MAX, AVG 等,没有从 SQL 层针对聚合类每组展开处理的功能。不过 MySQL 开放了 UDF 接口,可以用 C 来自己写UDF,这个就增加了功能行难度。

这种针对每组展开处理的功能就叫窗口函数,有的数据库叫分析函数。

在 MySQL 8.0 之前,我们想要得到这样的结果,就得用以下几种方法来实现:

1. session 变量

2. group_concat 函数组合

3. 自己写 store routines

接下来我们用经典的 学生/课程/成绩 来做窗口函数演示

准备

学生表

mysql> show create table student \G*************************** 1. row ***************************       Table: studentCreate Table: CREATE TABLE student (  sid int(10) unsigned NOT NULL,  sname varchar(64) DEFAULT NULL,  PRIMARY KEY (sid)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci1 row in set (0.00 sec)

课程表

mysql> show create table course\G*************************** 1. row ***************************       Table: courseCreate Table: CREATE TABLE `course` (  `cid` int(10) unsigned NOT NULL,  `cname` varchar(64) DEFAULT NULL,  PRIMARY KEY (`cid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci1 row in set (0.00 sec)

成绩表

mysql> show create table score\G*************************** 1. row ***************************       Table: scoreCreate Table: CREATE TABLE `score` (  `sid` int(10) unsigned NOT NULL,  `cid` int(10) unsigned NOT NULL,  `score` tinyint(3) unsigned DEFAULT NULL,  PRIMARY KEY (`sid`,`cid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci1 row in set (0.00 sec)

测试数据

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么影响了汇率 我有一支万宝龙金笔4810,18K750。可惜笔杆坏了,请问什么地方能配件? 荣耀手机怎么弄轻触亮屏 大姨妈全是血块怎么办 不锈钢丝生产商怎么选好呢? 在春晚上赢的优酷会员卡怎么激活 暑假里 我读了好多好多的书 我也看了电视剧 三国演义 和 西游记... 西游记中银角大王:“叫你一声你敢答应吗?”为何有如此大的力量 ...就玩具战争打不开,加载到100时就停了,肿么办啊? 苹果4手机优酷7天会员怎么激活 杭州现在登机需要核酸检测报告吗 海南净化车间检测要多少钱?第三方洁净检测机构有哪些 谁知道电缆YTTW-YTTW-4*(1*120)YTTW-3*(1*70)+1*(1*35)的价格是多少,知道的说下,谢谢! 已告知租户房子刚装修,后期出现甲醛超标导致的疾病,需要负责吗? 矿物质绝缘电缆YTTW4*35+E16什么意思 甲醛检测单位哪家最好 YTTW-4*120 YTTW-4(1*95) BTTQ-4*120 分别代表什么电缆?前两种电缆有什么区别? 杭州有检测等离子空气消毒机的机构吗? dw-yttwy-5*10mm2是什么电缆 求杭州检测甲醛的机构,不要那种cma的太贵了! yttw电缆单价 杭州天杭空气质量检测有限公司的出报告速度怎么样? 消防系统图中YTTW-3×35-CT是什么意思 杭州天杭空气质量检测有限公司的各项检测出报告快吗? YTTW-5*10啥意思? excel怎么通过目录打开文件 苹果手机12软件登录验证码是英文怎么改成中文? Excel怎么设置第一页为目录,点击目录内容会到内容相应界面? 如何在EXCEL中设置目录?就是那种点击其中一个目录名称就弹出相应的工作表,急求解 多层实木板与多层板有区别吗? YTTW-750-4(1*300)是什么意思 家居空气污染有哪些? 树上结的柿子富含维c吗 3*(YTTW-750-240)+(YTTW-750-120)电缆终端头制作需要哪些材料? JHYYTTW注册过商标吗?还有哪些分类可以注册? YTTW-y-5ⅹ4是什么电缆? 哪种窗户隔音效果好? YTTW-4*6是什么型号的电缆 科学八年级探究性学习课题 yttw电缆型号为什么是4芯 YTTW-4x10十PE/TC一CL/CE是什么意思? 2(YTTW-3*185+2*95) CT 什么意思? 树柿子有什么营养 虎牙弹幕hz nt 这些是什么意思? 英雄联盟中nt什么意思 个人简历模板从哪个APP里下载 个人简历在哪里可以免费下载的吗? 个人简历免费下载到哪里可以呢? 辩论赛反方三辩提问技巧 怎么通过电线区分两相电和三相电