友情提示:本文共有 968 个字,阅读大概需要 2 分钟。
INSERT INTO 语句可以用两种方式编写。第一种:INSERT INTO table_name (column1, column2, column3, ...)VALUES (value1, value2, value3, ...);第二种:INSERT INTO table_nameVALUES (value1, value2, value3, ...);
<窗口函数>over(partitionby(用于分组的列名)orderby(用于排序的列名))
新建班级表
insertinto班级表(学号,班级,成绩)
values("0001","1","86");insertinto班级表(学号,班级,成绩)
values("0002","1","95");insertinto班级表(学号,班级,成绩)
values("0003","2","89");insertinto班级表(学号,班级,成绩)
values("0004","1","83");insertinto班级表(学号,班级,成绩)
values("0005","2","86");insertinto班级表(学号,班级,成绩)
values("0006","3","92");insertinto班级表(学号,班级,成绩)
values("0007","3","86");insertinto班级表(学号,班级,成绩)
values("0008","1","88");
以上结果,班级 1 中,成绩 “95” 排在第一位,成绩 “83” 排在第 4 位。
对 SQL 语句解释如下:rank 是排序函数,要求是 “每个班级内按成绩排名”
每个班级内:按班级分组,partition by 用来对表分组,在该案例中,指定了按 “班级” 分组
按成绩排名:order by 子句的功能是对分组后的结果进行排序,默认按升序 ( asc ) 排列。上述案例中 order by 成绩 desc,即按成绩降序
窗口函数具备了 group by 子句分组的功能和 order by 子句排序的功能,为什么还要用窗口函数?
group by 分组汇总后改变了表的行数,一行只有一个类别
partition by 和 rank 函数不会减少原表中的行数
select班级,count(学号)from班级表groupby班级;
本文如果对你有帮助,请点赞收藏《insert into语句》,同时在此感谢原作者。