成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

數據分析師的SQL功底該學到什么程度?

運維 數據庫運維 數據分析
常有朋友問,數據分析師的SQL功底該學到什么程度。今天就先談談 T-SQL 中的 Window Function.

[[416110]]

本文轉載自微信公眾號「有關SQL」,作者Lenis。轉載本文請聯系有關SQL公眾號。

常有朋友問,數據分析師的SQL功底該學到什么程度。今天就先談談 T-SQL 中的 Window Function.

Window Function 包含了 4 個大類。分別是:

  • 1 - Rank Function
  • 2 - Aggregate Function
  • 3 - Offset Function
  • 4 - Distribution Function.

1 - Rank Function 平常用到最多

  • 1.1 Rank() Over()
  • 1.2 Row_Number() Over()
  • 1.3 Dense_Rank() Over()
  • 1.4 NTILE(N) Over()

這四個函數,要注意的地方有兩點:

a. Rank() Over() 與 Row_Number() Over() :

兩者唯一的區別,就在于Row_Number() Over() 真正實現了相同條件的兩條或者多條記錄是用唯一值來區別的

b. Rank() Over() 與 Dense_Rank() Over() :

這兩者的區別,在于他們對位于相同排名之后的名次,是接著相同排名的連續數(Rank) 還是相隔 N 個相同記錄個數之后的連續數(Dense_Rank)。

所以 Rank 出來的結果都是連續數字,而 Dense_Rank 出來的結果有可能有跳格數。

c. 除了有用法上的區別外,順帶說說分頁的實現:

第一種,我們平常用 Row_Number() 加 Top (N) 來實現 :

  1. select top(100) * 
  2.  
  3.      from ( select  
  4.  
  5.                          OrderId 
  6.  
  7.                      ,    OrderMonth 
  8.  
  9.                       ,    OrderAmount 
  10.  
  11.                       ,    Row_Number() Over(                                    
  12.  
  13.                                  OrderBy OrderAmount DESC
  14.  
  15.                              AS Amt_Order 
  16.  
  17.                   from FctSales) tmp 
  18.  
  19.       Where Amt_Order between 2000 and 3000 

第二種,SQL Server 2012 之后的新功能:

  1. Select    OrderId 
  2.  
  3.             ,    OrderMonth 
  4.  
  5.             ,    OrderAmount 
  6.  
  7.    From FctSales 
  8.  
  9.   Order by OrderAmount Desc 
  10.  
  11.  
  12.  
  13.   OffSet 2000 ROWS 
  14.  
  15.   Fetch Next 100 ROWS Only  

按照量的大小倒序排,取第 2000 條后的記錄中前 100 條。

2 - Aggregate Function. 聚合數據

  • 2.1 - Sum() Over()
  • 2.2 - Count() Over()
  • 2.3 - AVG() Over()
  • 2.4 - MIN() Over()
  • 2.5 - MAX() Over()

在使用 Aggregation 函數的時候,唯一要注意的地方就是 Order 子句。

  1. function_name(<arguments>) Over( 
  2.  
  3.     [ <window partition clause>] 
  4.  
  5.     [ <window Order clause> 
  6.  
  7.             [ <window frame clause>] 
  8.  
  9.     ]) 

Over::

  1. Over( 
  2.  
  3.             [    <PARTITION BY clause>    ] 
  4.  
  5.             [    <ORDER BY clause>          ] 
  6.  
  7.             [    <ROW or RANGE clause>  ] 
  8.  
  9.     ) 

::窗口中的窗口

  1. ROWS | RANGE 
  2.  
  3.     BETWEEN  
  4.  
  5.         UNBOUNDED PRECDEDING  | 
  6.  
  7.          <N>  PRECEDING     | 
  8.  
  9.           <N>  FOLLOWING   | 
  10.  
  11.             CURRENT ROW 
  12.  
  13.      AND 
  14.  
  15.             UNBOUNDED FOLLOWING  | 
  16.  
  17.              <N> PRECEDING  | 
  18.  
  19.              <N> FOLLOWING  | 
  20.  
  21.              CURRENT ROW 

舉一個例子:

  1. select custid 
  2.  
  3.    , ordermonth 
  4.  
  5.    , ordervolume 
  6.  
  7.     , sum(ordervolume)  
  8.  
  9.           over(    partition by custid 
  10.  
  11.                 order by ordermonth asc 
  12.  
  13.                 rows between     
  14.  
  15.                          unbounded preceding 
  16.  
  17.                 and    current row) 
  18.  
  19.         as cumulatedVolume 
  20.  
  21.  from FctSales 

統計了截止到目前為止,每一天的累計總量。

3 - Offset Function:定位記錄

  • 3.1 Lead()
  • 3.2 LAG()
  • 3.3 First_Value()
  • 3.4 Last_Value()
  • 3.5 Nth_Value()

這一類比較好理解,根據當前的記錄,獲取前后 N 條數據。

4 - Distribution Function: 分布函數

  • 4.1- PERCENT_RANK()
  • 4.2 - CUME_DIST()
  • 4.3 - PERCENT_COUNT()-
  • 4.4 - PERCENT_DISC()

 

這一類應用,到目前為止,未用過。適用于財會類的統計。

 

責任編輯:武曉燕 來源: 有關SQL
相關推薦

2017-04-11 09:08:02

數據分析Python

2018-07-19 19:50:48

大數據數據分析師網站分析

2012-08-08 09:00:29

數據分析師

2015-08-18 13:26:05

數據分析

2024-07-26 21:36:43

2016-10-21 14:41:22

數據分析師大數據

2017-02-13 19:25:24

2015-04-03 11:19:21

大數據大數據分析師

2013-07-29 15:58:28

大數據數據分析

2012-08-07 17:32:25

數據分析師

2019-09-16 11:37:07

大數據數據分析工具

2015-08-17 09:39:40

大數據

2021-03-26 07:37:34

數據分析工具技能

2023-07-08 23:05:01

數據分析運營

2020-05-12 10:44:19

數據分析師薪資數據

2016-01-26 10:33:23

大數據分析工具數據分析師

2018-01-28 15:40:20

數據分析師職業規劃數據分析

2011-05-30 09:55:14

數據分析師

2016-02-23 09:59:14

數據分析數據分析師數據管理

2020-07-20 07:00:00

數據分析師數據分析大數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产欧美日韩一区 | 国产日韩欧美在线一区 | 欧美日韩在线高清 | 全免费a级毛片免费看视频免费下 | 中文字幕在线第二页 | 四虎av电影 | 亚洲精品观看 | 男女视频在线观看网站 | 成人国产精品视频 | 九九成人 | 久久日韩粉嫩一区二区三区 | 狠狠av| 欧美性猛交一区二区三区精品 | 国产成人精品午夜视频免费 | 91久久北条麻妃一区二区三区 | 成人在线中文字幕 | 一级美国黄色片 | 一区二区三区高清不卡 | 亚洲福利在线观看 | 日韩五月天 | 国产精品亚洲第一区在线暖暖韩国 | 欧美一区二区三区在线视频 | 国产欧美一区二区三区另类精品 | 日韩有码一区 | 国产精品乱码一二三区的特点 | 精品视频在线观看 | 日韩一区中文字幕 | 日本一区二区三区在线观看 | 日韩五月天 | 久久国产精品-国产精品 | 做a网站| 亚洲精品一区二区三区免 | 日韩毛片在线观看 | 91久色| 久久高清国产视频 | 日韩www | 操网站 | 国产综合精品一区二区三区 | 成人欧美一区二区三区 | 久久国产精品一区二区三区 | 免费久久99精品国产婷婷六月 |