黄a在线观看-黄a在线-黄a大片-黄色片在线看-黄色毛片免费-黄色大片网站

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

MySQL8.0數(shù)據(jù)庫(kù)開(kāi)窗函數(shù)圖文詳解

瀏覽:16日期:2023-08-28 20:27:10
目錄簡(jiǎn)介一、開(kāi)窗函數(shù) 與 聚合函數(shù) 有什么區(qū)別?二、官方解釋的開(kāi)窗函數(shù)三、開(kāi)窗函數(shù)細(xì)分3.1、序號(hào)3.2、分布3.3、前后3.4、首尾3.5、其它四、語(yǔ)法使用4.1、語(yǔ)法結(jié)構(gòu)4.2、普通聚合函數(shù)做開(kāi)窗函數(shù)4.2.1、表結(jié)構(gòu)4.2.2、表數(shù)據(jù)4.2.3、普通函數(shù)做開(kāi)窗函數(shù)4.3、序號(hào)函數(shù)4.3.1、ROW_NUMBER()函數(shù) 4.3.2、RANK()函數(shù)4.3.3、DENSE_RANK()函數(shù)4.3.4、上述三種序號(hào)函數(shù)對(duì)比4.4、分布函數(shù)4.4.1、PERCENT RANK()函數(shù)4.4.2、CUME_DIST()函數(shù)4.5、前后函數(shù)4.5.1、LAG()函數(shù)4.5.2、LEAD()函數(shù)4.6、收尾函數(shù)4.6.1、FIRST_VALUE()函數(shù)4.6.2、LAST_VALUE()函數(shù)4.7、其它函數(shù)4.7.1、NTILE()函數(shù)4.7.2、NTH_VALUE()函數(shù)總結(jié)簡(jiǎn)介

數(shù)據(jù)庫(kù)開(kāi)窗函數(shù)是一種在SQL中使用的函數(shù),它可以用來(lái)對(duì)結(jié)果集中的數(shù)據(jù)進(jìn)行分組和排序,以便更好地分析和處理數(shù)據(jù)。開(kāi)窗函數(shù)與聚合函數(shù)不同,它不會(huì)將多行數(shù)據(jù)聚合成一行,而是保留每一行數(shù)據(jù),并對(duì)其進(jìn)行分組和排序。

常見(jiàn)的開(kāi)窗函數(shù)包括ROW_NUMBER()、RANK()、DENSE_RANK()、NTILE()、LAG()、LEAD()等。這些函數(shù)可以幫助用戶在結(jié)果集中生成分組和排序的結(jié)果,以便更好地理解和分析數(shù)據(jù)。

例如,使用ROW_NUMBER()函數(shù)可以根據(jù)一個(gè)或多個(gè)字段對(duì)結(jié)果集進(jìn)行分組,并在每個(gè)分組內(nèi)生成一個(gè)行號(hào),以便用戶可以輕松地跟蹤數(shù)據(jù)。使用LAG()和LEAD()函數(shù)可以在結(jié)果集中的每一行之前和之后提取數(shù)據(jù),以便用戶可以查看當(dāng)前行之前或之后的數(shù)據(jù)。

開(kāi)窗函數(shù)是SQL中非常有用的工具,可以幫助用戶對(duì)結(jié)果集中的數(shù)據(jù)進(jìn)行分組和排序,以便更好地分析和處理數(shù)據(jù)。

MySQL 官方文檔: https://dev.mysql.com/doc/refman/8.0/en/window-functions.html

注意: 官方解釋 開(kāi)窗函數(shù)只有MySQL8.0版本之后才有哦。

一、開(kāi)窗函數(shù) 與 聚合函數(shù) 有什么區(qū)別?

數(shù)據(jù)處理范圍:聚合函數(shù)只能對(duì)整個(gè)數(shù)據(jù)表或者數(shù)據(jù)集進(jìn)行操作,計(jì)算結(jié)果為單一值。而開(kāi)窗函數(shù)則可以對(duì)每個(gè)行進(jìn)行操作,計(jì)算結(jié)果會(huì)在每個(gè)行上顯示。

計(jì)算結(jié)果:聚合函數(shù)的計(jì)算結(jié)果只有一個(gè),通常用于執(zhí)行諸如求和、取平均值、計(jì)算最大值/最小值等的操作。而開(kāi)窗函數(shù)的計(jì)算結(jié)果可以有多個(gè),它提供給查詢結(jié)果集中每一行的附加列。語(yǔ)法:聚合函數(shù)通常用于SELECT語(yǔ)句中的SELECT子句和HAVING子句,而開(kāi)窗函數(shù)通常在OVER關(guān)鍵字后使用。

二、官方解釋的開(kāi)窗函數(shù)

翻譯

官方說(shuō)的很官方,稍有點(diǎn)難以理解還是。

三、開(kāi)窗函數(shù)細(xì)分3.1、序號(hào)ROW_NUMBER():該函數(shù)可以根據(jù)一個(gè)或多個(gè)字段對(duì)結(jié)果集進(jìn)行分組,并在每個(gè)分組內(nèi)生成一個(gè)行號(hào),以便用戶可以輕松地跟蹤數(shù)據(jù)。RANK():該函數(shù)可以根據(jù)一個(gè)或多個(gè)字段對(duì)結(jié)果集進(jìn)行排序,并在每個(gè)排序中生成一個(gè)排名,以便用戶可以了解數(shù)據(jù)的大小和順序。DENSE_RANK():該函數(shù)可以根據(jù)一個(gè)或多個(gè)字段對(duì)結(jié)果集進(jìn)行排序,并在每個(gè)排序中生成一個(gè)排名,但跳過(guò)的位次比RANK()函數(shù)少一位。3.2、分布PERCENT RANK():函數(shù)用于計(jì)算數(shù)據(jù)集中每個(gè)值的百分比排名。CUME_DIST():函數(shù)用于計(jì)算數(shù)據(jù)集中每個(gè)值的累積密度排名。3.3、前后LAG():該函數(shù)可以在結(jié)果集中的每一行之前提取數(shù)據(jù),以便用戶可以查看當(dāng)前行之前的數(shù)據(jù)。LEAD():該函數(shù)可以在結(jié)果集中的每一行之后提取數(shù)據(jù),以便用戶可以查看當(dāng)前行之后的數(shù)據(jù)。3.4、首尾FIRST_VALUE():函數(shù)返回結(jié)果集的有序分區(qū)中的第一個(gè)值。LAST_VALUE():函數(shù)返回結(jié)果集的有序分區(qū)中的最后一個(gè)值。3.5、其它NTILE():該函數(shù)可以根據(jù)一個(gè)或多個(gè)字段對(duì)結(jié)果集進(jìn)行分組,并將每個(gè)分組分配到指定數(shù)量的桶中,以便用戶可以更好地分析和分組數(shù)據(jù)。NTH_VALUE():函數(shù)返回結(jié)果集的有序分區(qū)中第n行的值。四、語(yǔ)法使用4.1、語(yǔ)法結(jié)構(gòu)

<窗口函數(shù)> OVER ([PARTITION BY <分組列>] [ORDER BY <排序列> {ASC|DESC}] [<行窗口>|<范圍窗口>] [<開(kāi)始位置>|<結(jié)束位置>|<長(zhǎng)度>])

<窗口函數(shù)>表示要執(zhí)行的聚合函數(shù),如SUM、AVG、MAX、MIN、COUNT等;<分組列>表示要進(jìn)行分組的列;<排序列>表示按照哪個(gè)列進(jìn)行排序,可以指定多個(gè)排序列,用逗號(hào)分隔;<行窗口>和<范圍窗口>分別表示行級(jí)窗口和范圍級(jí)窗口;<開(kāi)始位置>、<結(jié)束位置>和<長(zhǎng)度>表示窗口的起始位置、結(jié)束位置和長(zhǎng)度。

在 MySQL 8.0 中,行窗口是指一組連續(xù)的行,這些行被視為一個(gè)整體,并且可以用于窗口函數(shù)的計(jì)算。

行窗口由以下關(guān)鍵字指定:

ROWS:表示行窗口。BETWEEN:用于指定行窗口的起始位置和結(jié)束位置。PRECEDING:表示行窗口的起始位置。FOLLOWING:表示行窗口的結(jié)束位置。

常用的行窗口指定方式:

ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW:表示從結(jié)果集的第一個(gè)行到當(dāng)前行,包括當(dāng)前行。ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING:表示從當(dāng)前行到結(jié)果集的最后一個(gè)行,包括當(dāng)前行。ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING:表示包含當(dāng)前行在內(nèi)的前后各一行。

說(shuō)明: 行窗口可以用于計(jì)算每組的總和、平均值、計(jì)數(shù)等聚合操作,也可以用于計(jì)算每個(gè)行的排名、累積和等操作。

4.2、普通聚合函數(shù)做開(kāi)窗函數(shù)

普通聚合函數(shù)只能對(duì)整個(gè)數(shù)據(jù)表或者數(shù)據(jù)集進(jìn)行操作,計(jì)算結(jié)果為單一值。而開(kāi)窗函數(shù)可以針對(duì)每個(gè)行進(jìn)行操作,計(jì)算結(jié)果會(huì)在每個(gè)行上顯示。

4.2.1、表結(jié)構(gòu)DROP TABLE IF EXISTS `order_for_goods`;CREATE TABLE `order_for_goods` ( `order_id` int(0) NOT NULL AUTO_INCREMENT, `user_id` int(0) NULL DEFAULT NULL, `money` decimal(10, 2) NULL DEFAULT NULL, `quantity` int(0) NULL DEFAULT NULL, `join_time` datetime(0) NULL DEFAULT NULL, PRIMARY KEY (`order_id`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;4.2.2、表數(shù)據(jù)INSERT INTO order_for_goods (user_id, money, quantity, join_time )VALUES( 1001, 1800.90, 1, '2023-06-07'),( 1001, 3600.89, 5, '2023-05-02'),( 1001, 1000.10, 6, '2023-01-08'),( 1002, 1100.90, 9, '2023-04-07'),( 1002, 4500.99, 1, '2023-03-14'),( 1003, 2500.10, 3, '2023-02-14'),( 1002, 2500.90, 1, '2023-03-14'),( 1003, 2500.90, 1, '2022-12-12'),( 1003, 2500.90, 2, '2022-09-08'), ( 1003, 6000.90, 8, '2023-01-10');4.2.3、普通函數(shù)做開(kāi)窗函數(shù)

1、語(yǔ)句如下

select *,sum(money) over(partition by user_id order by order_id) as alias_sum,avg(money) over(partition by user_id order by order_id) as alias_avg,max(money) over(partition by user_id order by order_id) as alias_max,min(money) over(partition by user_id order by order_id) as alias_min,count(money) over(partition by user_id order by order_id) as alias_countfrom order_for_goods;

從 order_for_goods 表中選擇了所有的列,并計(jì)算了每個(gè)用戶在每個(gè)訂單中的總金額、平均金額、最大金額、最小金額和計(jì)數(shù)。

這個(gè)查詢使用了 sum()、avg()、max()、min() 和 count() 函數(shù)來(lái)計(jì)算每個(gè)訂單的總金額、平均金額、最大金額、最小金額和計(jì)數(shù)。這些函數(shù)后面跟著 over() 子句,用于指定計(jì)算的窗口。在這個(gè)例子中,窗口是按照 user_id 分區(qū),按照 order_id 排序的。

2、查詢結(jié)果返回了選擇的列和計(jì)算出的別名列如下

4.3、序號(hào)函數(shù)4.3.1、ROW_NUMBER()函數(shù)

1、執(zhí)行語(yǔ)句

select *from (select *,row_number() over(partition by user_id order by money desc) as alias_row_numberfrom order_for_goods) twhere alias_row_number<=3;以上SQL語(yǔ)句使用了窗口函數(shù) row_number() 來(lái)為每個(gè)分區(qū)內(nèi)的行分配序號(hào)。然后,外部查詢從這些序號(hào)中選擇前三個(gè)最高的行。內(nèi)部查詢從 order_for_goods 表中選擇了所有的列,并使用 row_number() 函數(shù)為每個(gè)分區(qū)內(nèi)的行分配序號(hào)。在這個(gè)例子中,子查詢將數(shù)據(jù)是按照 user_id 列進(jìn)行分區(qū) ,按照 money 列的降序排列的。外部查詢從內(nèi)部查詢的結(jié)果中選擇了序號(hào)小于等于 3 的行,這些行對(duì)應(yīng)于分區(qū)內(nèi)前三高的行。

2、執(zhí)行結(jié)果

3、執(zhí)行語(yǔ)句

select *from (select *,row_number() over(partition by user_id order by money desc) as alias_row_numberfrom order_for_goods) twhere alias_row_number<=1;

以上這個(gè)查詢語(yǔ)句與上一個(gè)查詢語(yǔ)句類(lèi)似,只不過(guò) alias_row_number<=3 改成了 alias_row_number<=1,因此結(jié)果將只返回分區(qū)內(nèi)最高的一行。

4、執(zhí)行結(jié)果

總結(jié): 可以發(fā)散思維想一想,舉個(gè)栗子: 比如統(tǒng)計(jì)各個(gè)商品領(lǐng)域銷(xiāo)量排行前三。使用開(kāi)窗是不是可以解決很多問(wèn)題,也避免了大量難以維護(hù)且看不懂的sql邏輯。

4.3.2、RANK()函數(shù)

1、執(zhí)行語(yǔ)句

select *, rank() over(partition by user_id order by money desc) as alias_rank from order_for_goods;

以上SQL語(yǔ)句使用了窗口函數(shù) rank() 來(lái)為每個(gè)用戶計(jì)算一個(gè)別名排名(alias_rank)。rank() 函數(shù)會(huì)為每個(gè)分區(qū)內(nèi)的連續(xù)排名計(jì)算一個(gè)排名值,因此這個(gè)語(yǔ)句會(huì)為每個(gè)用戶計(jì)算一個(gè)別名排名。注意語(yǔ)句沒(méi)有指定任何條件,因此它會(huì)返回 order_for_goods 表中的所有行和列。如果需要查詢特定的行或列,可以在 select 子句中指定相應(yīng)的條件或列名。

2、執(zhí)行結(jié)果

4.3.3、DENSE_RANK()函數(shù)

1、執(zhí)行語(yǔ)句

select *, dense_rank() over(partition by user_id order by money desc) as alias_dense_rank from order_for_goods; 以上SQL語(yǔ)句使用了窗口函數(shù) dense_rank() 來(lái)為每個(gè)用戶計(jì)算一個(gè)別名密集排名(alias_dense_rank)。dense_rank() 函數(shù)會(huì)為每個(gè)分區(qū)內(nèi)的排名計(jì)算一個(gè)排名值,對(duì)于相鄰排名值相同的行,排名值會(huì)連續(xù)分配。因此,這個(gè)語(yǔ)句會(huì)為每個(gè)用戶計(jì)算一個(gè)別名密集排名。注意語(yǔ)句沒(méi)有指定任何條件,因此它會(huì)返回 order_for_goods 表中的所有行和列。如果需要查詢特定的行或列,可以在 select 子句中指定相應(yīng)的條件或列名。

2、執(zhí)行結(jié)果

4.3.4、上述三種序號(hào)函數(shù)對(duì)比

1、執(zhí)行語(yǔ)句

select *, row_number() over(partition by user_id order by money desc) as alias_row_number, rank() over(partition by user_id order by money desc) as alias_rank, dense_rank() over(partition by user_id order by money desc) as alias_dense_rankfrom order_for_goods; 從 order_for_goods 表中選擇了所有的列,并計(jì)算了每個(gè)用戶在每個(gè)訂單中的總金額,以及計(jì)算了每個(gè)用戶在每個(gè)訂單中的序號(hào)、排名和稠密排名。這個(gè)查詢使用了 row_number()、rank() 和 dense_rank() 函數(shù)來(lái)計(jì)算每個(gè)分區(qū)內(nèi)的行的序號(hào)、排名和稠密排名。這些函數(shù)后面跟著 over() 子句,用于指定計(jì)算的窗口。在這個(gè)例子中,窗口是按照 user_id 分區(qū),按照 money 列的降序排列的。

2、執(zhí)行結(jié)果

4.4、分布函數(shù)4.4.1、PERCENT RANK()函數(shù)

1、執(zhí)行語(yǔ)句

select *,percent_rank() over(partition by user_id order by money desc) as alias_percent_rankfrom order_for_goods; 從 order_for_goods 表中選擇了所有的列,并計(jì)算了每個(gè)用戶在每個(gè)訂單中的總金額,以及計(jì)算了每個(gè)用戶在每個(gè)訂單中的百分比排名。這個(gè)查詢使用了 percent_rank() 函數(shù)來(lái)計(jì)算每個(gè)分區(qū)內(nèi)的行的百分比排名。這個(gè)函數(shù)后面跟著 over() 子句,用于指定計(jì)算的窗口。在這個(gè)例子中,窗口是按照 user_id 分區(qū),按照 money 列的降序排列的。

2、執(zhí)行結(jié)果

4.4.2、CUME_DIST()函數(shù)

1、執(zhí)行語(yǔ)句

select *,cume_dist() over(partition by user_id order by money desc) as alias_percent_rankfrom order_for_goods; 從 order_for_goods 表中選擇了所有的列,并計(jì)算了每個(gè)用戶在每個(gè)訂單中的總金額,以及計(jì)算了每個(gè)用戶在每個(gè)訂單中的累積百分比。這個(gè)查詢使用了 cume_dist() 函數(shù)來(lái)計(jì)算每個(gè)分區(qū)內(nèi)的行的累積百分比。這個(gè)函數(shù)后面跟著 over() 子句,用于指定計(jì)算的窗口。在這個(gè)例子中,窗口是按照 user_id 分區(qū),按照 money 列的降序排列的。

2、執(zhí)行結(jié)果

4.5、前后函數(shù)4.5.1、LAG()函數(shù)

1、語(yǔ)法說(shuō)明

LAG()函數(shù)是用于在時(shí)間序列中向前移動(dòng)指定周期的函數(shù)。

LAG(expression, offset, default_value)

expression:要取值的列 offset:向前數(shù)第幾行的值 default_value:如果沒(méi)有值,可設(shè)置默認(rèn)值

2、執(zhí)行語(yǔ)句

select *,lag(join_time, 1, 0) over(partition by user_id order by join_time desc) as alias_lagfrom order_for_goods;

3、執(zhí)行結(jié)果

4.5.2、LEAD()函數(shù)

1、語(yǔ)法說(shuō)明

LEAD()函數(shù)是用于在時(shí)間序列中向后移動(dòng)指定周期的函數(shù)。

LAG(expression, offset, default_value)

expression:要取值的列 offset:向后數(shù)第幾行的值 default_value:如果沒(méi)有值,可設(shè)置默認(rèn)值

2、執(zhí)行語(yǔ)句

select *,lead(join_time, 1, 0) over(partition by user_id order by join_time desc) as alias_leadfrom order_for_goods;

3、執(zhí)行結(jié)果

4.6、收尾函數(shù)4.6.1、FIRST_VALUE()函數(shù)

1、語(yǔ)法說(shuō)明

FIRST_VALUE:取窗口第一行的值

FIRST_VALUE(expression)

expression:一個(gè)表達(dá)式,用于指定要獲取第一行值的列或計(jì)算結(jié)果。

2、執(zhí)行語(yǔ)法

select *,first_value(money) over(partition by user_id order by join_time desc) as alias_first_valuefrom order_for_goods;

注意,如果某個(gè)用戶在指定時(shí)間范圍內(nèi)沒(méi)有數(shù)據(jù),則 LAST_VALUE() 函數(shù)將返回默認(rèn)值 NULL。

3、執(zhí)行結(jié)果

4.6.2、LAST_VALUE()函數(shù)

1、語(yǔ)法說(shuō)明

LAST_VALUE:取窗口最后一行的值。

LAST_VALUE(expression)

expression:一個(gè)表達(dá)式,用于指定要獲取最后一行值的列或計(jì)算結(jié)果。

2、執(zhí)行語(yǔ)法

select *,first_value(money) over(partition by user_id order by join_time desc) as alias_first_valuefrom order_for_goods;

注意,如果某個(gè)用戶在指定時(shí)間范圍內(nèi)沒(méi)有數(shù)據(jù),則 LAST_VALUE() 函數(shù)將返回默認(rèn)值 NULL。

2、執(zhí)行結(jié)果

3、解釋

你可能會(huì)發(fā)現(xiàn)LAST_VALUE() 不是取窗口的最后一個(gè)值,窗口按照 user_id 分區(qū),按照 join_time 列排序,按道理是返回1001分區(qū)中money為1800.90才對(duì)啊? 為什么? 為什么?原因是LAST_VALUE()默認(rèn)統(tǒng)計(jì)范圍是 rows between unbounded preceding and current row

3、驗(yàn)證

select *,last_value(money) over(partition by user_id order by join_time) as alias_last_value1,last_value(money) over(partition by user_id order by join_time rows between unbounded preceding and current row) as alias_last_value2,last_value(money) over(partition by user_id order by join_time rows between unbounded preceding and unbounded following) as alias_last_value3from order_for_goods; 可以看到別名 alias_last_value2 驗(yàn)證了LAST_VALUE()默認(rèn)統(tǒng)計(jì)范圍就是 rows between unbounded preceding and current row(表示從當(dāng)前行開(kāi)始向前沒(méi)有邊界地進(jìn)行計(jì)算,即計(jì)算當(dāng)前行之前的所有行的結(jié)果。) 可以看到別名 alias_last_value3 在指定 rows between unbounded preceding and unbounded following(表示從當(dāng)前行開(kāi)始向前和向后都沒(méi)有邊界地進(jìn)行計(jì)算,即計(jì)算整個(gè)分區(qū)的結(jié)果。)全部統(tǒng)計(jì)情況下可以得到,user_id 分區(qū),join_time 列排序,返回1001分區(qū)中字段money最后一筆交易金額為1800.90。+----------+---------+---------+----------+---------------------+------------------+------------------+------------------+| order_id | user_id | money | quantity | join_time | alias_last_value | alias_last_value | alias_last_value |+----------+---------+---------+----------+---------------------+------------------+------------------+------------------+| 34 | 1001 | 1000.10 |6 | 2023-01-08 00:00:00 | 1000.10 | 1000.10 | 1800.90 || 33 | 1001 | 3600.89 |5 | 2023-05-02 00:00:00 | 3600.89 | 3600.89 | 1800.90 || 32 | 1001 | 1800.90 |1 | 2023-06-07 00:00:00 | 1800.90 | 1800.90 | 1800.90 || 36 | 1002 | 4500.99 |1 | 2023-03-14 00:00:00 | 2500.90 | 4500.99 | 1100.90 || 38 | 1002 | 2500.90 |1 | 2023-03-14 00:00:00 | 2500.90 | 2500.90 | 1100.90 || 35 | 1002 | 1100.90 |9 | 2023-04-07 00:00:00 | 1100.90 | 1100.90 | 1100.90 || 40 | 1003 | 2500.90 |2 | 2022-09-08 00:00:00 | 2500.90 | 2500.90 | 2500.10 || 39 | 1003 | 2500.90 |1 | 2022-12-12 00:00:00 | 2500.90 | 2500.90 | 2500.10 || 41 | 1003 | 6000.90 |8 | 2023-01-10 00:00:00 | 6000.90 | 6000.90 | 2500.10 || 37 | 1003 | 2500.10 |3 | 2023-02-14 00:00:00 | 2500.10 | 2500.10 | 2500.10 |+----------+---------+---------+----------+---------------------+------------------+------------------+------------------+10 rows in set (0.00 sec)4.7、其它函數(shù)4.7.1、NTILE()函數(shù)

1、語(yǔ)法說(shuō)明

NTILE() 用于將一個(gè)查詢結(jié)果集劃分成指定數(shù)量的桶,并根據(jù)桶的大小將數(shù)據(jù)分配到各個(gè)桶中。

NTILE(bucket_size)

bucket_size:一個(gè)整數(shù)參數(shù),表示要將結(jié)果集劃分成的桶的數(shù)量。

2、執(zhí)行語(yǔ)句

select *, ntile(1) over(partition by user_id order by join_time desc) as alias_ntile1,ntile(2) over(partition by user_id order by join_time desc) as alias_ntile2,ntile(3) over(partition by user_id order by join_time desc) as alias_ntile3from order_for_goods; 查詢使用窗口函數(shù) NTILE(),它可以將數(shù)據(jù)集合平均分配到指定的數(shù)量的桶中,并返回每個(gè)行所屬的桶號(hào)。 以別名 "alias_ntile3" 舉例,該查詢中ntile(3) 表示將每個(gè)用戶分為三個(gè)組,partition by user_id 表示按照 user_id 分組,order by join_time desc 表示按照 join_time 降序排序。如果是ntile(2)就表示分兩個(gè)組ntile(1)就表示分一個(gè)組。

3、執(zhí)行結(jié)果

說(shuō)明: NTILE()函數(shù),可以將有序的數(shù)據(jù)集合平均分配到指定的數(shù)量的桶中,將桶號(hào)分配給每一行。如果不能平均分配,則較小桶號(hào)的桶分配額外的行,并且各個(gè)桶中能放的行數(shù)最多相差1。

4.7.2、NTH_VALUE()函數(shù)

1、語(yǔ)法說(shuō)明

NTH_VALUE() 函數(shù)是 SQL 中用于計(jì)算一個(gè)有序數(shù)據(jù)集合中指定位置的值的窗口函數(shù)。

NTH_VALUE(expression, nth_parameter) expression:要計(jì)算其值的表達(dá)式,其求值為單個(gè)值。 nth_parameter:是一個(gè)整數(shù)參數(shù),表示要計(jì)算的值的序號(hào)。

2、執(zhí)行語(yǔ)句

select *, nth_value(money, 2) over(partition by user_id order by join_time ) as alias_nth_valuefrom order_for_goods;

注意,如果某個(gè)用戶在指定時(shí)間范圍內(nèi)沒(méi)有數(shù)據(jù),則 NTH_VALUE()函數(shù)將返回默認(rèn)值 NULL。

3、執(zhí)行結(jié)果

總結(jié)

到此這篇關(guān)于MySQL8.0數(shù)據(jù)庫(kù)開(kāi)窗函數(shù)的文章就介紹到這了,更多相關(guān)MySQL8.0開(kāi)窗函數(shù)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: MySQL 數(shù)據(jù)庫(kù)
主站蜘蛛池模板: 丁香伊人网 | 亚洲精品一区二区三区四区乱码 | 欧美日韩精品在线播放 | 日本猛少妇色xxxxx猛叫 | 欧美性受xxxx黒人xyx性爽 | 国产中文一区二区三区 | 精品免费 | 日韩成人短视频 | 美女在线一区 | 国产一区 在线播放 | 91精品国产综合久久久密臀九色 | 久久夜色精品国产噜噜av | 久久久久人妻一区精品性色av | 男人的天堂色 | 精品无码成人久久久久久 | 手机av网| 成人少妇高潮流白浆 | 男女啪啪免费体验区 | 亚洲黄站 | 国精产品乱码一区一区三区四区 | 久久精品噜噜噜成人av农村 | 深夜福利视频免费观看 | 国产乱子伦精品无码专区 | 一级片视频免费 | 亚洲国产日韩欧美在线观看 | 中国猛少妇色xxxxx | 国产清纯在线一区二区 | 久久久久久综合 | 国产一级二级三级在线观看 | 亚洲高清av在线 | 亚洲乱码精品 | 丰满少妇69激情啪啪无 | 又硬又粗又大一区二区三区视频 | 香港日本韩国三级网站 | 国产免费破外女真实出血视频 | 一区二区高清视频 | 久久国产精品福利一区二区三区 | 国产亚洲欧美日韩俺去了 | 极品毛片| 国产女人在线视频 | 台湾佬中文娱乐网址 | 农村女人乱淫免费视频麻豆 | 黄色在线一区 | 免费黄色一级大片 | 日本久久视频 | 欧美a√在线 | 91精品国产综合久久久久久久久久 | 精品国产自在精品国产浪潮 | 在线观看91av | 日韩伊人久久 | 波多野结衣先锋影音 | 天天干网站 | jzzjzzjzz亚洲成熟少妇 | 色日韩| 97中文在线 | 性生交大片免费视频网站 | 亚洲欧洲精品成人久久曰 | 中文字幕+乱码+中文 | 国产一区二区三区四区五区六区 | 中文字幕日韩精品在线观看 | 久久成人精品 | 人妻av无码一区二区三区 | 丝袜人妻一区二区三区网站 | 国产男女猛烈无遮挡免费视频 | 成人久草| 波多野结衣一区在线 | 国产制服丝袜一区 | 久久久久久久久久久久久久国产 | 师生出轨h灌满了1v1 | 日本一区二区三区在线观看视频 | 男女做爰猛烈吃奶啪啪喷水网站 | 日韩男人天堂 | 男女啪啪无遮挡免费网站 | 日本国产一区 | 黄色三级在线播放 | 天堂av国产夫妇精品自在线 | 久久久女人 | 国产精品久久久久久av | 天海翼av在线播放 | 中文字幕亚洲一区二区三区 | 一区二区国产在线观看 | 亚洲理论在线观看 | av大片在线播放 | www在线观看免费视频 | 国产欧美日韩专区发布 | 九九99九九精彩6 | 成人av动漫在线观看 | 天天爽夜夜爽人人爽 | 少妇久久久久久 | 亚洲国产精品尤物yw在线观看 | 97色伦97色伦国产欧美空 | 强开小嫩苞一区二区三区网站 | 少妇淫片aaaaa毛片叫床爽 | 精品乱子伦 | 欧美在线一区二区三区 | 黄色在线观看免费视频 | 91久久综合| 噜噜噜久久亚洲精品国产品 | 少妇性bbb搡bbb爽爽爽欧美 | 91精品天码美女少妇 | 中国一级片黄色一级片黄 | 日本欧美色十大禁片毛片 | 日本激情网址 | 韩国三级丰满少妇高潮 | 美女隐私免费看 | 国产女人好紧好爽 | 亚州av网站| 国产麻豆自拍 | 一起射导航| 国产超高清麻豆精品传媒麻豆精品 | 亚洲精品一区二三区 | 亚洲女同志亚洲女同女播放 | 国产日韩免费 | 黄污视频在线播放 | 99视频免费 | 琪琪色视频 | 国产成人av手机在线观看 | av潮喷大喷水系列无码 | 激情宗合网 | 国产精品6区 | 早川濑里奈av在线播放 | 亚洲麻豆一区二区三区 | 97色在线观看免费视频 | 亚洲午夜久久久久久久久电影网 | 久久精品日 | 亚洲精品国偷拍自产在线观看 | 亚洲一区黄色 | 99久久婷婷国产综合精品免费 | 国产农村1级毛片 | 色综合色综合色综合色欲 | 天天看夜夜| 激情婷婷综合 | 台湾午夜a级理论片在线播放 | 波多野结衣在线精品视频 | 欧美xxxxx精品 | 成人网免费| 中文字幕一区二区人妻电影 | 日本japanese丰满少妇 | 亚洲图片欧美在线看 | 免费毛片手机在线播放 | 国产精品宾馆在线精品酒店 | 国产乱码精品1区2区3区 | 日日噜噜噜夜夜爽爽狠狠视频寻花 | 成人一区二| 天躁狠狠躁 | 国产亚洲精品久久久久久牛牛 | 黄色成人av在线 | 色综合色综合久久综合频道88 | www.yeyyme成人看片 | 亚洲精品在线免费观看视频 | 国产精品人妻一区二区三区四 | 精品国产性色无码av网站 | 69精品久久久久 | 国产午夜精品18久久蜜臀董小宛 | 高清视频在线播放 | 亚洲女优在线观看 | 亚洲成a人片在线观看www | 亚洲欧美精品午睡沙发 | 日产精品久久久久久久性色 | 成人做爰69片免费 | 国产午夜精品视频免费不卡69堂 | 亚洲日韩成人 | 精品人妻无码一区二区色欲产成人 | 国产精品99久久精品爆乳 | 国语做受对白xxxxmp4 | 亚洲精品中文字幕久久久久下载 | 与黑人高h系列辣文 | 国产伦理一区二区三区 | 亚洲欧美精品综合在线观看 | 国产aⅴ一区二区三区 | 久久久精品人妻一区二区三区四 | 成人免费视频xbxb入口 | 台湾av在线 | 97av麻豆蜜桃一区二区 | 艳妇臀荡乳欲伦交换日本 | 成人手机在线免费视频 | 国产素人在线观看 | 日日噜噜夜夜狠狠视频 | 国产精品3区| 人妻夜夜爽天天爽一区 | 亚洲毛片一区二区三区 | 中文字幕亚洲情99在线 | 精品国产一区二区三区四区vr | 国内自拍农村少妇在线观看 | 亚洲一区二区三区三州 | 99日韩精品| 丰满少妇猛烈进入三区视频 | 91丨九色丨蝌蚪丨丝袜 | 荫蒂被男人添的好舒服爽免费视频 | 亚洲精品乱码久久久久久金桔影视 | 蜜桃精品一区二区 | 98久久 | 99999精品视频 | 91天堂网 | 亚州av网站| 一个色影院 | 夜鲁鲁鲁夜夜综合视频欧美 | 少妇精品视频 | 国产思思99re99在线观看 | 大陆熟妇丰满多毛xxxx | 性欧美18一19性猛交 | 日韩两性视频 | 成人片在线免费看 | 麻豆av在线看 | 翘臀后进少妇大白嫩屁股91 | 三级毛片在线看 | 日本免费一区二区三区四区五六区 | 国产精品美女久久久久 | 99久久无码一区人妻a黑 | 美女黄频视频大全免费的国内 | 久久婷婷五月综合色一区二区 | 国产午夜无码视频在线观看 | 蜜桃精品视频在线观看 | 精品久久久久久久 | 一边吃奶一边摸做爽视频 | 国产无套精品一区二区 | av无码久久久久不卡免费网站 | 少妇精品久久久久www | 性高朝大尺度少妇大屁股 | 特黄视频 | 中文字幕一区二区三区在线播放 | 中文字幕一区二区三区四区五区 | 精品三级av无码一区 | 国产精品日韩av | 日韩在线一卡二卡 | 亚洲成人网在线播放 | 久久久国产成人一区二区三区 | 欧美裸体性生活 | 成人激情开心 | 99精品久久99久久久久 | av一本久道久久波多野结衣 | 亚洲欧美精品综合在线观看 | 亚洲人成电影网站在线观看 | 日日躁夜夜摸月月添添添的视频 | 一级片的网站 | 国产白嫩美女在线观看 | 国产又粗又黄又猛 | 日本免费色 | 黄色a免费 | 欧美精品99久久久久久人 | 国产粉嫩高中好第一次不戴 | 6080av| 在线免费观看网站入口在哪 | 国产精品国产三级国产av主播 | 无套内谢88av免费看 | 国产精品原创av | 亚洲 欧美 综合 另类 中字 | 深爱开心激情 | 香蕉av一区 | 99精品亚洲 | 尤物视频激情在线视频观看网站 | 欧美成人a∨高清免费观看 欧美成人aa | 爱情岛亚洲首页论坛小巨 | 国产精品久久久久久久毛片明星 | 亚洲综合一区二区三区葵つかさ | 久久久国产精品无码免费专区 | 九九看片 | 欧美激情18 | 伊人色综合久久久天天蜜桃 | 91ts国产人妖系列 | 亚洲射图| 激情五月av| 国产精品亚洲视频 | 国产精品久久久久久超碰 | 色哟哟在线观看视频 | 国产日产精品一区二区 | 东京无码熟妇人妻av在线网址 | 99热久久这里只有精品 | 欧美videos最新极品 | 91灌醉下药在线观看播放 | 99久久亚洲精品视香蕉蕉v | 久久精品国产日本波多野结衣 | 天天午夜 | 国产精品久久一区二区三区 | 日韩天堂在线 | 国产一级特黄,真人毛片 | 日本韩国欧美在线 | 99久久久久久国产精品 | 亚洲一级二级片 | 九月婷婷人人澡人人添人人爽 | 精品久久久无码人妻字幂 | 婷婷激情视频 | 中文字幕亚洲综合 | 国产91www| 亚洲精品视频一区二区三区 | 又色又爽又黄的美女裸体网站 | 成人毛片在线观看 | 激情文学av| 日本高潮视频 | 欧美髙清性xxxxhdvid | 欧美三级午夜理伦三级小说 | 欧美人与性动交α欧美精品 | 69久久夜色精品国产69蝌蚪网 | 欧美精品黑人猛交高潮 | 国产交换配乱婬视频 | youjizz少妇| 凹凸成人精品亚洲精品密奴 | 一级做a爰片性色毛片武则天 | 成人国产精品色哟哟 | 欧美 国产 亚洲 卡通 综合 | 东京热无码av一区二区 | 午夜精品福利一区二区 | 亚洲13一14sexvideos| 久久久久97国产精 | 污污网站在线免费观看 | 亚洲精品91天天久久人人 | 97播播 | 青青成人在线 | av中文字 | 91色影院 | 激情五月婷婷丁香 | 在线播放成人av | 91精产国品 | 少妇mm被擦出白浆液视频 | 蘑菇av | 日韩操操 | 亚洲最大无码中文字幕 | 强制中出し~大桥未久在线a | 丰满白嫩欧洲美女图片 | 色av性av丰满av国产 | 欧美女同网站 | 麻花传媒在线观看免费 | 国产97自拍 | 午夜少妇视频 | 欧美精品三级 | 欧美日韩另类在线 | 欧美a级在线观看 | 久久久国产精品 | 欧美刺激性大交 | 香港三级澳门三级人妇99 | 国产男女猛烈无遮掩视频免费网站 | 日本a级老少配 | 美女的胸给男人玩视频 | 九九九九九精品 | 天天色综合2 | 国产乡下妇女三片 | 欧美日韩综合一区 | 自拍偷在线精品自拍偷99九色 | 国产亚洲欧美日韩精品一区二区三区 | 91av蜜桃| 日本成人一区二区 | 亚洲中文无码mv | 放荡的美妇在线播放 | 成人免费视频一区 | 欧美a级大片 | 毛片在线网站 | 国产女主播户外勾搭野战 | 艳妇臀荡乳欲伦69调教视频 | 午夜精品一区二区三区在线 | 久久毛片一区二区三区 | 久久影视网 | 国产乱人内谢69xxxx亚洲 | 日韩精品一区在线观看 | zzzwww在线看片免费 | 日韩欧美性视频 | 国产熟人av一二三区 | 久久久久北条麻妃免费看 | 国内精品久久久久影院中文字幕 | 一本色道久久综合亚洲精品小说 | 黑人干日本少妇 | 国产高清女同学巨大乳在线观看 | 亚洲精品久久久狠狠狠爱 | 国产原创av在线 | 一级黄色短视频 | 午夜日韩视频 | 日本3p视频| 国产精品久久久久久久免费软件 | 欧美人与动物xxxxx | 精品久久久久久久久久久国产字幕 | 中文字幕不卡在线88 | 国产黑色丝袜呻吟在线91 | 国产小视频在线看 | 少妇的肉体k8经典 | 91精品国产福利一区二区三区 | 一本到在线观看 | 精品夜夜爽欧美毛片视频 | 中文字幕日韩人妻不卡一区 | 成人av网站免费观看 | 日韩激情久久 | 欧洲熟妇色xxxx欧美老妇老头多毛 | 488成人啪啪片 | 好男人社区资源 | 国产网站黄色 | 人妻有码中文字幕在线 | 久久久久久国产精品视频 | 日本zzzwww大片免费 | 久久综合网址 | 中文字幕第3页 | julia中文字幕在线 | 欧洲免费av | 亚洲精品永久www嫩草 | 欧美日韩精品乱国产 | 国产吃瓜在线 | 美女黄色免费网站 | 国产乱人乱精一区二视频国产精品 | 国产tscd人妖同性另类调教 | 97偷拍少妇性按摩spa全程 | 成人精品一区日本无码网站 | 亚洲综合视频网 | 六月丁香婷婷色狠狠久久 | 99自拍偷拍| 成人影院中文字幕 | 亚洲欧美日韩综合一区二区 | 全黄一级裸片视频 | 天堂av免费| 好男人社区www在线官网 | 中文字幕在线观看你懂的 | 91女神在线 | 亚洲国产精品久久人人爱 | 亚洲欧洲一区二区在线观看 | 中文精品在线观看 | 色网站在线免费观看 | 天天爽夜夜爱 | 国产成人精品一区二区三区免费 | 国产毛片毛片毛片毛片毛片毛片 | 乱人伦精品视频在线观看 | 91波多野结衣 | 日韩国产精品视频 | 性欧美一级 | 九九热久久久99国产盗摄蜜臀 | 在线观看黄色片网站 | 麻豆疯狂做受xxxx高潮视频 | 亚洲欧美色一区二区三区 | 欧美牲交a欧美牲交aⅴ免费下载 | 日本少妇b| 日韩欧美在线视频 | 欧美一级免费视频 | 精品无码久久久久久国产 | 好吊妞视频988gao免费软件 | 91丨九色丨蝌蚪丰满 | 91超碰在线免费观看 | 狠狠做深爱婷婷久久综合一区 | 成人在线观看一区二区 | tube欧美巨大44 | 国产成人福利av综合导航 | 性无码专区无码 | 欧美午夜理伦三级在线观看吃奶汁 | 欧美多人猛交狂配 | 日韩视频在线观看视频 | 欧美一级网站 | 免费av一级片| 国产亚洲精品精品国产亚洲综合 | 自拍欧美日韩 | 成人在线观看你懂的 | 免费看一区二区三区 | 国产精品美女www爽爽爽软件 | 精品深夜av无码一区二区老年 | 欧美成人一区免费视频 | 免费观看不卡av | 亚洲自拍天堂 | 国产性生交大片免费 | 日本特黄特色大片免费视频网站 | 日韩午夜影院 | 中文字日产幕乱码免费 | 麻豆视频在线观看 | 18禁在线永久免费观看 | 免费观看一级视频 | 亚洲一区二区三区乱码aⅴ 亚洲一区二区三区日本久久九 | 亚洲熟妇av一区二区三区宅男 | 99999精品视频| 视频一区国产精品 | 久久久精品久久日韩一区综合 | 天天做天天爱天天做 | 中文字幕精品亚洲无线码一区应用 | 最近最新中文字幕 | 青草青草久热精品视频在线观看 | 色屁屁ts人妖系列二区 | 中文字幕不卡在线88 | 亚洲精品在线免费观看视频 | 中文字幕一区二区三区四区欧美 | 青草内射中出高潮 | 免费看污片网站 | 日本特级黄色录像 | 国产精品视频免费播放 | 亚洲精品乱码久久久久久按摩观 | 99精品国产99久久久久久51 | 99久久久无码国产精品9 | 久久精品国产免费看久久精品 | 亚洲一区二区综合 | 亚洲精品久久久久久久久久吃药 | 伊人黄色 | 国精品无码一区二区三区左线 | 国产精品一线天 | 欧美日韩第一页 | 日韩精品二区在线观看 | 免费无遮挡无码永久在线观看视频 | 日本一区二区视频 | 中文字幕无码不卡免费视频 | 成av免费大片黄在线观看 | 国精产品一区一区三区mba视频 | 日本成人一级片 | av中文字幕一区 | 国产又爽又粗又猛的视频 | 精品一区二区三区在线视频 | 国内免费av | 五月丁香六月综合缴情在线 | 国产免费av片在线 | 欧美第一页浮力影院 | hitomi一区二区在线播放 | 精品久久久国产 | 黄色精品一区二区三区 | 69式视频| 伊人久久影视 | 95在线视频 | 国产色在线视频 | 隔壁老王国产在线精品 | 天天干天天舔天天射 | 石榴视频成人在线观看 | 欧美日韩一区二区在线视频 | 久久久精品在线观看 | 欧美极品少妇性运交 | 性网爆门事件集合av | www夜插内射视频网站 | 亚洲欧美国产精品专区久久 | 欧洲无码一区二区三区在线观看 | 亚洲88av | 亚洲涩视频| 国产精品三级视频 | 日本人xxxxxxxxx泡妞 | 欧美日日摸夜夜添夜夜添 | 蜜桃精品免费久久久久影院 | 诱人的奶水h男 | 久久精品道一区二区三区 | 久久国产精品广西柳州门 | 日韩午夜一区 | 插一插射一射视频 | 午夜肉伦伦影院九七影网 | 国产日产欧美a级毛片 | 成人免费无码大片a毛片抽搐色欲 | 黄色软件网站入口 | 免费在线一区二区 | 国产午夜精品一区 | 靠逼网站在线观看 | 九九九在线视频 | av在线播放一区二区三区 | 免费公开在线视频 | 森林影视官网在线观看 | 国产视频123 | 大陆极品少妇内射aaaaaa | 四虎精品8848ys一区二区 | 日韩欧美色视频 | 亚洲精品无码永久中文字幕 | 国产一区二区视频免费 | 让少妇高潮无乱码高清在线观看 | 关秀媚三级露全乳 | 日韩av在线第一页 | 欧美va免费高清在线观看 | 久久香蕉网 | 亚洲精品四区 | 日本aⅴ在线观看 | 天堂网一区二区三区 | 精品国产三级a∨在线 | 久久亚洲精 | 天天干狠狠 | av中文字幕免费在线观看 | 色呦呦在线 | 国产精品怡红院永久免费 | 亚洲国产一区二区三区波多野结衣 | 色婷婷视频在线 | 狠狠做深爱婷婷综合一区 | 国产不卡一区 | 伊人福利 | 少妇高潮九九九αv | 香蕉精品视频在线观看 | 久久国产精品久久精品国产 | 色欲网天天无码av | 成人国产一区 | 亚洲av毛片成人精品 | 中文字幕人成无码人妻 | 文中字幕一区二区三区视频播放 | 日韩av无码一区二区三区 | 久久久久成人免费看a含羞草久色 | 99久久久无码国产精品性 | 久久日韩国产精品免费 | 日本免费一区二区三区中文字幕 | 奇米精品视频一区二区三区 | 在线操| 成人在线视频观看 | 五月天精品视频在线观看 | jizz一区二区三区 | 欧美成人片在线 | 中文字幕制服狠久久日韩二区 | 国产真实偷伦视频 | 欧美精品免费在线观看 | 精品成在人线av无码免费看 | 国产精品久久国产精麻豆99网站 | 久久这里只有精品99 | 暴力强奷美女孕妇视频 | 国产国语亲子伦亲子 | 精品久久久久久久久久久久久久久久 | 麻豆tv入口在线看 | 欧美精品一区二区三区蜜臀 | 懂色a v| 精品国产一区二区三区四区vr | 永久看看免费大片 | 波多野结衣在线视频网站 | 国产一区二区三区久久久久久久久 | 全肉高h后宫gl | 99九九久久 | 三级免费网站 | 66亚洲一卡2卡新区成片发布 | 成人性生交大全免 | 我和亲妺妺乱的性视频 | 毛片免费视频在线观看 | 一区二区免费视频 | 免费久久一级欧美特大黄 | 天天插夜夜操 | 亚洲欧美日韩综合久久久 | 国产精品女同一区二区软件 | 最新免费av网址 | 噼里啪啦免费观看高清动漫 | 成年人在线播放视频 | www178ccom视频在线 | 天天躁日日躁狠狠躁800凹凸 | 黄色福利视频 |