国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - mysql使用自定義序列實現row_number功能(步驟詳解)

mysql使用自定義序列實現row_number功能(步驟詳解)

2022-02-10 17:31水木青楓 Mysql

這篇文章主要介紹了mysql使用自定義序列實現row_number功能,本文分步驟通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下

看了一些文章,終于知道該怎么在 mysql 里面實現 row_number() 排序

話不多說,show you the code:

第一步:建表:

?
1
2
3
4
5
create table grades(
`name` varchar(10),
`subject` varchar(10),
`score` int(10)
)

第二步:寫入數據

?
1
2
3
4
5
6
7
8
9
10
11
12
13
insert into grades(name, subject, score)
values('小明', '語文', 85),
('小華', '語文', 89),
('小李', '語文', 91),
('小芳', '語文', 93),
('小明', '數學', 77),
('小華', '數學', 95),
('小李', '數學', 83),
('小芳', '數學', 88),
('小明', '英語', 90),
('小華', '英語', 92),
('小李', '英語', 85),
('小芳', '英語', 88)

數據如下:

mysql使用自定義序列實現row_number功能(步驟詳解)

第三步:
需求:找出各科目單科第二的同學

首先,先排序:

?
1
2
3
select name, subject, score
from grades
order by subject, score desc

數據如下:

mysql使用自定義序列實現row_number功能(步驟詳解)

然后,每個科目按照分組排序

?
1
2
3
4
5
6
7
8
9
10
11
select (@i:=case when @subject_pre=t1.subject then @i+1 else 1 end) as rn,
t1.*,
(@subject_pre:=subject)
from (
    select name, subject, score
    from grades
    order by subject, score desc
) t1,
(select @i:=0, @subject_pre:='') as t2
group by subject, score
order by subject, score desc

mysql使用自定義序列實現row_number功能(步驟詳解)

解釋一下:
添加一個比較項 subject_pre, 記錄前一個科目是什么。
再加上一個自增的序列,實現index+1的功能。
因為數據已經是有序的,如果指向的科目和存儲的前一個科目相同,那么序號+1,否則的話,序號從1開始重新計算。
這樣就實現了分組排序。

最后,把 rn=2 的數據取出來

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
select name, subject, score from(
select (@i:=case when @subject_pre=t1.subject then @i+1 else 1 end) as rn,
t1.name,
t1.subject,
t1.score,
(@subject_pre:=subject)
from (
select name, subject, score
from grades
order by subject, score desc
) t1,
(select @i:=0, @subject_pre:='') as t2
group by subject, score
order by subject, score desc
) t
where rn=2

最后結果如下:

mysql使用自定義序列實現row_number功能(步驟詳解)

這樣就使用mysql實現了row_number()的功能。

在網上找的資料,很多沒寫清楚,這里特地用一個示例把這個實現講清楚了,希望對你有幫助!

到此這篇關于mysql使用自定義序列實現row_number功能的文章就介紹到這了,更多相關mysql row_number功能內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/bigband/p/15716205.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 美女视频一区二区三区 | 精品国产凹凸成av人导航 | 不卡一二区 | 中文字幕人成乱码在线观看 | 一区二区三区高清 | 一区二区三区动漫 | 中文字幕久久精品 | 国产黄色在线播放 | 国产精品欧美一区二区三区不卡 | 欧美午夜精品久久久久久人妖 | 中文字幕在线观看日韩 | 欧美日韩精品久久久 | 日韩精品一区二区三区中文字幕 | 亚洲成年人网站在线观看 | 91嫩草视频在线观看 | 日本不卡高字幕在线2019 | 久久精品久久久久久 | 中文字幕乱码亚洲无线三区 | 国产目拍亚洲精品99久久精品 | 人人澡人人透人人爽 | 国产精品久久久久久中文字 | 亚洲激情网站 | 亚洲综合久久久 | 欧美日韩中文字幕 | av有声小说一区二区三区 | 一区二区高清 | 综合久久精品 | 在线免费观看视频 | 日韩簧片 | 91精品国产91久久综合 | 欧美成人h版在线观看 | 国产精品久久久久久久久久久久午夜片 | 国产黄色免费网站 | 日韩 在线 | 国产日韩精品一区二区 | 精品无码久久久久国产 | 中文字幕日韩一区 | 综合二区 | av在线第一页 | 依人网站| 中文字幕在线观看av |