日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql dese_MySQL 5.6-类似于DENSE_RANK的功能,无需订购

發布時間:2023/12/1 数据库 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql dese_MySQL 5.6-类似于DENSE_RANK的功能,无需订购 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

小編典典

對于 MySQL版本

<8.0(OP的版本是5.6):

問題陳述看起來需要DENSE_RANK功能groupVarian; 但是事實并非如此。正如 @Gordon

Linoff解釋的那樣 :

您似乎希望按它們在數據中出現的順序來枚舉它們。

假設您的表名是t(請為您的代碼相應地更改表名和字段名)。這是一種利用會話變量的方法(

對于MySQL的較早版本 ),給出期望的結果(

SET @row_number = 0;

SELECT t3.caseID,

t3.groupVarian,

CONCAT('v', t2.num) AS nameVarian

FROM

(

SELECT

(@row_number:=@row_number + 1) AS num,

t1.groupVarian

FROM

(

SELECT DISTINCT groupVarian

FROM t

ORDER BY caseID ASC

) AS t1

) AS t2

INNER JOIN t AS t3

ON t3.groupVarian = t2.groupVarian

ORDER BY t3.caseID ASC

另外:

我之前的模擬DENSE_RANK功能的嘗試效果很好。盡管也可以對先前的查詢進行一些微調以實現DENSE_RANK功能。但是,以下查詢效率更高,因為它創建的

Derived表較少 ,并避免了 JOIN on groupVarian:

SET @row_number = 1;

SET @group_varian = '';

SELECT inner_nest.caseID,

inner_nest.groupVarian,

CONCAT('v', inner_nest.num) as nameVarian

FROM (

SELECT

caseID,

@row_number:=CASE

WHEN @group_varian = groupVarian THEN @row_number

ELSE @row_number + 1

END AS num,

@group_varian:=groupVarian as groupVarian

FROM

t

ORDER BY groupVarian

) AS inner_nest

ORDER BY inner_nest.caseID ASC

2020-05-17

總結

以上是生活随笔為你收集整理的mysql dese_MySQL 5.6-类似于DENSE_RANK的功能,无需订购的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。