欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:sql — 窗口函數(shù)

柚子快報激活碼778899分享:sql — 窗口函數(shù)

http://yzkb.51969.com/

1. 基本介紹

1.1 窗口函數(shù)介紹

窗口函數(shù)是SQL中的一種強(qiáng)大工具,用于在查詢結(jié)果中進(jìn)行分析和計算。

與常規(guī)聚合函數(shù)不同,窗口函數(shù)可以在不影響查詢結(jié)果集的情況下,對結(jié)果集中的每一行應(yīng)用函數(shù),生成額外的信息,例如排名、累計和等。這些函數(shù)可以根據(jù)定義的窗口范圍動態(tài)地計算值,而不是像常規(guī)聚合函數(shù)那樣對整個數(shù)據(jù)集進(jìn)行計算。

窗口函數(shù)通常與OVER子句一起使用,OVER子句定義了窗口的范圍,可以指定分區(qū)、排序規(guī)則等。

1.2 窗口函數(shù)分類

窗口函數(shù)可以分為排序窗口函數(shù)和統(tǒng)計窗口函數(shù)兩大類。

排序窗口函數(shù)主要用于對數(shù)據(jù)進(jìn)行排序和排名,包括row_number、rank、dense_rank、percent_rank、ntile;

統(tǒng)計窗口函數(shù)則用于進(jìn)行統(tǒng)計計算,包括count、sum、avg、min、max、first_value、last_value、lag、lead、cume_dist。

2. 樣例數(shù)據(jù)

2.1 樣例數(shù)據(jù)SQL

CREATE TABLE Sales ( id INT, region VARCHAR(50), amount DECIMAL(10, 2));

INSERT INTO Sales (id, region, amount) VALUES(1, 'North', 1000.50),(2, 'North', 1500.75),(3, 'South', 800.25),(4, 'West', 1200.00),(5, 'East', 2000.30);

3.各個窗口函數(shù)介紹

3.1 row_number()窗口函數(shù)

row_number函數(shù)為結(jié)果集中的每一行分配一個唯一的整數(shù),按照指定的排序順序進(jìn)行排列。

SELECT id, region, amount, ROW_NUMBER() OVER (ORDER BY amount DESC) AS row_numFROM Sales;

3.2 rank ()窗口函數(shù)

rank函數(shù)為結(jié)果集中的每一行分配一個排名,如果有相同數(shù)值,則會跳過相同排名并繼續(xù)遞增。(不連續(xù)排名)

rank()函數(shù)的結(jié)果是:1, 2, 3, 3, 5, 6。

SELECT id, region, amount, RANK() OVER (ORDER BY amount DESC) AS rankFROM Sales;

分區(qū)

RANK() OVER (PARTITION BY column ORDER BY column) AS rank_column

PARTITION BY 子句用于指定分區(qū)列,根據(jù)該列的值將數(shù)據(jù)分成不同的分區(qū)。ORDER BY 子句用于指定排序列,根據(jù)該列的值對每個分區(qū)內(nèi)的行進(jìn)行排序。

3.3 dense_rank()窗口函數(shù)

dense_rank函數(shù)為結(jié)果集中的每一行分配一個排名,與rank函數(shù)類似,但是在遇到相同數(shù)值時,dense_rank不會跳過相同排名,而是連續(xù)分配相同的排名。(連續(xù)排名)

dense_rank()函數(shù)的結(jié)果是:1, 2, 3, 3, 4, 5

SELECT id, region, amount, DENSE_RANK() OVER (ORDER BY amount DESC) AS dense_rankFROM Sales;

3.4 percent_rank()窗口函數(shù)

percent_rank函數(shù)計算每一行在排序結(jié)果中的相對排名,返回一個介于0和1之間的小數(shù)值,用來表示行在排序結(jié)果中的相對位置。

SELECT id, region, amount, PERCENT_RANK() OVER (ORDER BY amount DESC) AS percent_rankFROM Sales;

3.5 ntile(n)窗口函數(shù)

ntile函數(shù)將結(jié)果集分割成指定數(shù)量的桶,并為每個桶分配一個編號,確保每個桶中的行數(shù)量盡可能均勻。

SELECT id, region, amount, NTILE(2) OVER (ORDER BY amount DESC) AS ntileFROM Sales;

3.6 count(*)窗口函數(shù)

?count函數(shù)計算結(jié)果集中行的數(shù)量,可以結(jié)合分組函數(shù)使用,用于統(tǒng)計分組內(nèi)的行數(shù)。

SELECT id, region, amount, COUNT(*) OVER (PARTITION BY region) AS region_countFROM Sales;

3.7 sum( ) 窗口函數(shù)

sum函數(shù)計算指定列的總和,并將結(jié)果添加到每一行。

SELECT id, region, amount, SUM(amount) OVER () AS total_salesFROM Sales;

3.8 min() 窗口函數(shù)

min函數(shù)計算指定列的最小值,并將結(jié)果添加到每一行。

SELECT id, region, amount, MIN(amount) OVER () AS min_amountFROM Sales;

3.9 max() 窗口函數(shù)

max函數(shù)計算指定列的最大值,并將結(jié)果添加到每一行。

SELECT id, region, amount, MAX(amount) OVER () AS max_amountFROM Sales;

3.10 avg () 窗口函數(shù)

avg函數(shù)計算指定列的平均值,并將結(jié)果添加到每一行。

SELECT id, region, amount, AVG(amount) OVER () AS avg_amountFROM Sales;

3.11 first_value () 窗口函數(shù)

first_value() 函數(shù)返回分組內(nèi)的第一個值,并將其添加到每一行。

SELECT id, region, amount, FIRST_VALUE(amount) OVER (PARTITION BY region ORDER BY id) AS first_amountFROM Sales;

柚子快報激活碼778899分享:sql — 窗口函數(shù)

http://yzkb.51969.com/

好文閱讀

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19569271.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄