精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

學 SQL 必須了解的十個高級概念

數據庫 SQL Server
隨著數據量持續增長,對合格數據專業人員的需求也會增長。具體而言,對SQL流利的專業人士的需求日益增長,而不僅僅是在初級層面。

隨著數據量持續增長,對合格數據專業人員的需求也會增長。具體而言,對SQL流利的專業人士的需求日益增長,而不僅僅是在初級層面。

因此,Stratascratch的創始人Nathan Rosidi以及我覺得我認為10個最重要和相關的中級到高級SQL概念。

1.常見表表達式(CTEs)

如果您想要查詢子查詢,那就是CTEs施展身手的時候 - CTEs基本上創建了一個臨時表。

使用常用表表達式(CTEs)是模塊化和分解代碼的好方法,與您將文章分解為幾個段落的方式相同。

請在Where子句中使用子查詢進行以下查詢。

SELECT 
 name,
 salary 
FROM
 People 
WHERE
 NAME IN ( SELECT DISTINCT NAME FROM population WHERE country = "Canada" AND city = "Toronto" ) 
 AND salary >= (
 SELECT
  AVG( salary ) 
 FROM
  salaries 
WHERE
 gender = "Female")

這似乎似乎難以理解,但如果在查詢中有許多子查詢,那么怎么樣?這就是CTEs發揮作用的地方。

with toronto_ppl as (
   SELECT DISTINCT name
   FROM population
   WHERE country = "Canada"
         AND city = "Toronto"
)
, avg_female_salary as (
   SELECT AVG(salary) as avgSalary
   FROM salaries
   WHERE gender = "Female"
)
SELECT name
       , salary
FROM People
WHERE name in (SELECT DISTINCT FROM toronto_ppl)
      AND salary >= (SELECT avgSalary FROM avg_female_salary)

現在很清楚,Where子句是在多倫多的名稱中過濾。如果您注意到,CTE很有用,因為您可以將代碼分解為較小的塊,但它們也很有用,因為它允許您為每個CTE分配變量名稱(即toronto_ppl和avg_female_salary)

同樣,CTEs允許您完成更高級的技術,如創建遞歸表。

2.遞歸CTEs.

遞歸CTE是引用自己的CTE,就像Python中的遞歸函數一樣。遞歸CTE尤其有用,它涉及查詢組織結構圖,文件系統,網頁之間的鏈接圖等的分層數據,尤其有用。

遞歸CTE有3個部分:

  • 錨構件:返回CTE的基本結果的初始查詢
  • 遞歸成員:引用CTE的遞歸查詢。這是所有與錨構件的聯盟
  • 停止遞歸構件的終止條件

以下是獲取每個員工ID的管理器ID的遞歸CTE的示例:

with org_structure as (
   SELECT id
          , manager_id
   FROM staff_members
   WHERE manager_id IS NULL
   UNION ALL
   SELECT sm.id
          , sm.manager_id
   FROM staff_members sm
   INNER JOIN org_structure os
      ON os.id = sm.manager_id

3.臨時函數

如果您想了解有關臨時函數的更多信息,請檢查此項,但知道如何編寫臨時功能是重要的原因:

  • 它允許您將代碼的塊分解為較小的代碼塊
  • 它適用于寫入清潔代碼
  • 它可以防止重復,并允許您重用類似于使用Python中的函數的代碼。

考慮以下示例:

SELECT name
       , CASE WHEN tenure < 1 THEN "analyst"
              WHEN tenure BETWEEN 1 and 3 THEN "associate"
              WHEN tenure BETWEEN 3 and 5 THEN "senior"
              WHEN tenure > 5 THEN "vp"
              ELSE "n/a"
         END AS seniority 
FROM employees

相反,您可以利用臨時函數來捕獲案例子句。

CREATE TEMPORARY FUNCTION get_seniority(tenure INT64) AS (
   CASE WHEN tenure < 1 THEN "analyst"
        WHEN tenure BETWEEN 1 and 3 THEN "associate"
        WHEN tenure BETWEEN 3 and 5 THEN "senior"
        WHEN tenure > 5 THEN "vp"
        ELSE "n/a"
   END
);
SELECT name
       , get_seniority(tenure) as seniority
FROM employees

通過臨時函數,查詢本身更簡單,更可讀,您可以重復使用資歷函數!

4.使用CASE WHEN樞轉數據

您很可能會看到許多要求在陳述時使用CASE WHEN的問題,這只是因為它是一種多功能的概念。如果要根據其他變量分配某個值或類,則允許您編寫復雜的條件語句。

較少眾所周知,它還允許您樞轉數據。例如,如果您有一個月列,并且您希望為每個月創建一個單個列,則可以使用語句追溯數據的情況。

示例問題:編寫SQL查詢以重新格式化表,以便每個月有一個收入列。

Initial table:  
+------+---------+-------+  
| id   | revenue | month |  
+------+---------+-------+  
| 1    | 8000    | Jan   |  
| 2    | 9000    | Jan   |  
| 3    | 10000   | Feb   |  
| 1    | 7000    | Feb   |  
| 1    | 6000    | Mar   |  
+------+---------+-------+  
  
Result table:  
+------+-------------+-------------+-------------+-----+-----------+  
| id   | Jan_Revenue | Feb_Revenue | Mar_Revenue | ... | Dec_Revenue |  
+------+-------------+-------------+-------------+-----+-----------+  
| 1    | 8000        | 7000        | 6000        | ... | null        |  
| 2    | 9000        | null        | null        | ... | null        |  
| 3    | null        | 10000       | null        | ... | null        |  
+------+-------------+-------------+-------------+-----+-----------+

5.EXCEPT vs NOT IN

除了幾乎不相同的操作。它們都用來比較兩個查詢/表之間的行。所說,這兩個人之間存在微妙的細微差別。

首先,除了過濾刪除重復并返回不同的行與不在中的不同行。

同樣,除了在查詢/表中相同數量的列,其中不再與每個查詢/表比較單個列。

6.自聯結

一個SQL表自行連接自己。你可能會認為沒有用,但你會感到驚訝的是這是多么常見。在許多現實生活中,數據存儲在一個大型表中而不是許多較小的表中。在這種情況下,可能需要自我連接來解決獨特的問題。

讓我們來看看一個例子。

示例問題:給定下面的員工表,寫出一個SQL查詢,了解員工的工資,這些員工比其管理人員工資更多。對于上表來說,Joe是唯一一個比他的經理工資更多的員工。

+----+-------+--------+-----------+  
| Id | Name  | Salary | ManagerId |  
+----+-------+--------+-----------+  
| 1  | Joe   | 70000  | 3         |  
| 2  | Henry | 80000  | 4         |  
| 3  | Sam   | 60000  | NULL      |  
| 4  | Max   | 90000  | NULL      |  
+----+-------+--------+-----------+Answer:  
SELECT  
    a.Name as Employee  
FROM  
    Employee as a  
    JOIN Employee as b on a.ManagerID = b.Id  
WHERE a.Salary > b.Salary

7.Rank vs Dense Rank vs Row Number

它是一個非常常見的應用,對行和價值進行排名。以下是公司經常使用排名的一些例子:

  • 按購物,利潤等數量排名最高值的客戶
  • 排名銷售數量的頂級產品
  • 以最大的銷售排名頂級國家
  • 排名在觀看的分鐘數,不同觀眾的數量等觀看的頂級視頻。

在SQL中,您可以使用幾種方式將“等級”分配給行,我們將使用示例進行探索。考慮以下Query和結果:

SELECT Name  
 , GPA  
 , ROW_NUMBER() OVER (ORDER BY GPA desc)  
 , RANK() OVER (ORDER BY GPA desc)  
 , DENSE_RANK() OVER (ORDER BY GPA desc)  
FROM student_grades

ROW_NUMBER()返回每行開始的唯一編號。當存在關系時(例如,BOB vs Carrie),ROW_NUMBER()如果未定義第二條標準,則任意分配數字。

Rank()返回從1開始的每行的唯一編號,除了有關系時,等級()將分配相同的數字。同樣,差距將遵循重復的等級。

dense_rank()類似于等級(),除了重復等級后沒有間隙。請注意,使用dense_rank(),Daniel排名第3,而不是第4位()。

8.計算Delta值

另一個常見應用程序是將不同時期的值進行比較。例如,本月和上個月的銷售之間的三角洲是什么?或者本月和本月去年這個月是什么?

在將不同時段的值進行比較以計算Deltas時,這是Lead()和LAG()發揮作用時。

這是一些例子:

# Comparing each month's sales to last month  
SELECT month  
       , sales  
       , sales - LAG(sales, 1) OVER (ORDER BY month)  
FROM monthly_sales  
# Comparing each month's sales to the same month last year  
SELECT month  
       , sales  
       , sales - LAG(sales, 12) OVER (ORDER BY month)  
FROM monthly_sales

9.計算運行總數

如果你知道關于row_number()和lag()/ lead(),這可能對您來說可能不會驚喜。但如果你沒有,這可能是最有用的窗口功能之一,特別是當您想要可視化增長!

使用具有SUM()的窗口函數,我們可以計算運行總數。請參閱下面的示例:

SELECT Month  
       , Revenue  
       , SUM(Revenue) OVER (ORDER BY Month) AS Cumulative  
FROM monthly_revenue

10.日期時間操縱

您應該肯定會期望某種涉及日期時間數據的SQL問題。例如,您可能需要將數據分組組或將可變格式從DD-MM-Yyyy轉換為簡單的月份。

您應該知道的一些功能是:

  • 提煉
  • 日元
  • date_add,date_sub.
  • date_trunc.

示例問題:給定天氣表,寫一個SQL查詢,以查找與其上一個(昨天)日期相比的溫度較高的所有日期的ID。

+---------+------------------+------------------+  
| Id(INT) | RecordDate(DATE) | Temperature(INT) |  
+---------+------------------+------------------+  
|       1 |       2015-01-01 |               10 |  
|       2 |       2015-01-02 |               25 |  
|       3 |       2015-01-03 |               20 |  
|       4 |       2015-01-04 |               30 |  
+---------+------------------+------------------+Answer:  
SELECT  
    a.Id  
FROM  
    Weather a,  
    Weather b  
WHERE  
    a.Temperature > b.Temperature  
    AND DATEDIFF(a.RecordDate, b.RecordDate) = 1


責任編輯:華軒 來源: SQL數據庫開發
相關推薦

2022-06-12 23:43:19

SQL數據函數

2022-03-22 23:18:55

SQL技術內部概念

2021-03-11 09:02:37

SQL數據庫數據

2025-08-14 02:00:00

2024-03-20 17:35:42

2020-08-11 17:14:31

數據庫SQL技術

2011-01-28 15:11:15

PowerShell

2009-03-26 09:12:30

軟件架構師領域云計算

2023-07-02 14:21:06

PythonMatplotlib數據可視化庫

2021-04-16 10:28:54

SQLJava代碼

2024-11-11 08:00:00

PyTorch深度學習

2011-05-11 15:28:05

2022-02-11 20:39:13

物聯網人工智能智能城市

2011-12-05 10:38:37

Java面試

2024-05-21 11:14:20

Python編程

2022-11-07 16:06:15

TypeScript開發技巧

2010-12-22 09:16:31

SQL Server專

2024-05-17 12:43:49

Python編程開發

2021-09-15 09:20:37

Python函數代碼

2022-06-08 10:42:34

ReduceJavaScript技巧
點贊
收藏

51CTO技術棧公眾號

高清久久一区| 国产私拍精品| 亚洲午夜精品久久久久久app| 亚洲国产你懂的| 国内一区在线| 手机在线免费看毛片| 最新国产一区二区| 色琪琪一区二区三区亚洲区| 亚洲春色在线视频| 精品国产一级片| 毛片一区二区| 久久伊人91精品综合网站| 中文字幕18页| www.26天天久久天堂| 亚洲另类在线一区| 欧美日韩精品免费观看| 无码人妻av一区二区三区波多野| 少妇一区二区三区| 91精品国产手机| 伊人av成人| 无码国产精品一区二区色情男同 | 国产日韩欧美亚洲一区| 无码人妻精品一区二区| 成人羞羞网站入口免费| 欧美性大战久久久久久久蜜臀| 日韩高清国产精品| 亚洲精品97久久中文字幕| 秋霞电影一区二区| 欧美在线激情网| 97在线观看免费视频| 福利片一区二区| 精品色蜜蜜精品视频在线观看| 免费久久99精品国产自| 亚洲春色一区二区三区| 免费高清不卡av| 8050国产精品久久久久久| 久久国产波多野结衣| 国内精品久久久久久99蜜桃| 日韩av最新在线观看| 特种兵之深入敌后| 亚洲黄色网址| 亚洲成人在线网站| 亚洲国产一二三精品无码| 中国日本在线视频中文字幕| 国产欧美日韩在线视频| 明星裸体视频一区二区| 午夜一区在线观看| 成人国产精品免费观看| av噜噜色噜噜久久| 精品国产亚洲AV| 久久久综合网| 青草青草久热精品视频在线网站 | 中文在线不卡视频| 久久av无码精品人妻系列试探| 欧美综合社区国产| 在线观看欧美精品| 少妇性l交大片| 神马电影网我不卡| 91久久香蕉国产日韩欧美9色| 免费看污污视频| 黄色免费在线观看网站| 中文字幕一区二区三区不卡| 亚洲在线不卡| aaa大片在线观看| 亚洲免费电影在线| 免费亚洲一区二区| 内衣办公室在线| 久久精品视频在线看| 日本视频精品一区| jzzjzzjzz亚洲成熟少妇| 国产精品色噜噜| 国产精品av免费| 污污的网站在线免费观看| 一区二区三区四区不卡在线| 青青青在线观看视频| 阿v视频在线| 色香蕉成人二区免费| 日韩 欧美 视频| 日本综合在线| 亚洲精品写真福利| 亚洲综合网中心| 国产成人高清精品| 亚洲国产综合人成综合网站| 国模吧无码一区二区三区| 免费污视频在线| 午夜精品aaa| av天堂永久资源网| 国产美女高潮在线| 亚洲国产精品久久不卡毛片| 男人的天堂99| 激情综合五月| 日韩电影网在线| 日韩一区二区a片免费观看| 奇米影视777在线欧美电影观看| 日韩精品一区在线观看| 黄色片视频免费观看| 日本午夜一区| 欧美精品成人在线| 波多野结衣日韩| 久久先锋影音| 亚洲影院色无极综合| 97视频免费在线| 高清国产一区二区| 五月天色一区| h片在线观看| 欧美三级电影在线看| 欧美夫妇交换xxx| 久久国产电影| 69久久夜色精品国产69乱青草| 国产成人在线播放视频| 另类小说一区二区三区| 久久国产精品亚洲va麻豆| 五月天婷婷在线视频| 精品久久久一区二区| 中文字幕12页| 欧洲激情综合| 97精品视频在线| 91精品国产高清一区二区三密臀| 午夜在线精品偷拍| 成人看片视频| 在线看的av网站| 一本久久a久久精品亚洲| 亚洲午夜精品在线观看| 成人激情诱惑| 欧美最顶级丰满的aⅴ艳星| 精品国自产拍在线观看| 中文字幕中文在线不卡住| 国产精品丝袜久久久久久消防器材| 都市激情综合| 亚洲国产欧美一区| 麻豆疯狂做受xxxx高潮视频| 麻豆视频一区二区| 奇米影视首页 狠狠色丁香婷婷久久综合 | 国产精品视频| 99三级在线| 久草中文在线观看| 欧美日韩一区二区在线观看| 中文字幕在线1| 天天综合网网欲色| 国产精品日韩专区| 都市激情在线视频| 91国内精品野花午夜精品| 在线精品一区二区三区| 影音先锋中文字幕一区二区| 91免费视频国产| 黄色在线观看网站| 3atv一区二区三区| 美女视频久久久| 久久99精品久久久久久国产越南| 国产伦精品一区二区| 午夜激情在线| 精品日韩欧美在线| 超碰人人干人人| 三级成人在线视频| 亚洲欧美成人一区| 999精品视频在线观看| 日韩中文字幕网址| 国产又大又粗又硬| 亚洲精品你懂的| 中文字幕第17页| 国产精品久久久久9999赢消| 成人情趣片在线观看免费| 日本在线观看视频| 欧美夫妻性生活| 午夜少妇久久久久久久久| 国产大陆a不卡| 欧美一区二区视频在线播放| 精品三级av在线导航| 欧美亚洲成人精品| 99久久精品国产成人一区二区| 国产亚洲va综合人人澡精品| 欧美一级片免费播放| 久久综合五月婷婷| 国产精品极品美女粉嫩高清在线| 婷婷综合激情网| 色呦呦网站一区| 殴美一级黄色片| 国产伦精品一区二区三区免费迷 | 成人在线国产| 成人做爰www免费看视频网站| 国产免费av高清在线| 欧美日韩小视频| 日本污视频网站| 国产麻豆成人精品| 日本网站免费在线观看| 国产一区二区精品久| 成人两性免费视频| 九色porny丨国产首页在线| 国产一区二区三区三区在线观看| 久久久黄色大片| 成人av动漫在线| 国产一区亚洲二区三区| 欧美激情777| 国产一区二区精品在线| 成人全视频免费观看在线看| 欧美激情久久久| 成人av毛片| 精品精品欲导航| 精品97人妻无码中文永久在线| 国产专区综合网| 男人天堂1024| 91精品蜜臀一区二区三区在线| 91中文字幕在线| xx欧美视频| 欧美大片第1页| 国产成人手机在线| 亚洲不卡av一区二区三区| 日本理论中文字幕| 成人性生交大片免费看中文 | 四虎国产精品免费观看| 国产一区二区丝袜高跟鞋图片| 美女写真理伦片在线看| 日韩精品中文字幕在线| 无码人妻丰满熟妇区五十路| 亚洲一区二区三区国产| 亚洲最大的黄色网| 国内精品伊人久久久久av一坑| 午夜啪啪福利视频| 国内成人精品| 久久国产主播精品| 成人另类视频| 3d精品h动漫啪啪一区二区| av中文字幕在线观看第一页| 久久久精品久久久| av一本在线| 亚洲欧美成人在线| 污视频软件在线观看| 欧美成人vr18sexvr| 国产精品熟女久久久久久| 亚洲高清久久久| 在哪里可以看毛片| 国产在线不卡一卡二卡三卡四卡| 毛片av在线播放| 亚洲91视频| 中文字幕在线亚洲精品| 久久国产精品成人免费观看的软件| 亚洲综合日韩中文字幕v在线| а√天堂8资源中文在线| 欧美激情xxxx| 羞羞视频在线观看不卡| 欧美另类交人妖| 色视频精品视频在线观看| 亚洲精品一区二区三区99| 97人妻精品视频一区| 日本韩国一区二区| 久操视频在线免费观看| 色综合咪咪久久| 加勒比在线一区| 日本道免费精品一区二区三区| 久久r这里只有精品| 一区二区三区四区精品在线视频| 亚洲午夜精品久久久久久高潮| 国产经典欧美精品| 午夜性福利视频| 丁香桃色午夜亚洲一区二区三区| 欧美日韩在线成人| 午夜在线精品| www.色偷偷.com| 免费的成人av| 亚洲a级黄色片| 国产精品亚洲午夜一区二区三区 | 久久精品国产一区二区三| 中文字幕在线导航| 精品一区二区三区在线视频| 欧美日韩理论片| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 久久精品在线播放| 四虎影视国产在线视频| 国内精品国产三级国产在线专| 日本在线播放| 色综合男人天堂| 深夜av在线| 国产精品久久久久久久久借妻 | 一级黄色片视频| 8x福利精品第一导航| 懂色av成人一区二区三区| 日韩精品亚洲元码| 人人妻人人澡人人爽精品日本| 在线播放视频一区| 亚洲AV午夜精品| 精品无人区太爽高潮在线播放| 丰满人妻一区二区三区无码av| 91精品国产综合久久精品图片 | 色一情一交一乱一区二区三区| 粉嫩在线一区二区三区视频| 亚洲成人av免费在线观看| 国产精品午夜免费| 久久久精品91| 91黄色小视频| 午夜精品一区二区三| 精品中文字幕久久久久久| 午夜影院在线视频| 日韩中文字幕在线视频| 8x8ⅹ拨牐拨牐拨牐在线观看| 欧美激情视频网址| 台湾成人免费视频| 成人欧美一区二区三区视频| 国内黄色精品| 丁香六月激情婷婷| 久久99精品国产麻豆婷婷| 国产激情第一页| 26uuu精品一区二区三区四区在线| 中文字幕人妻一区| 国产精品视频第一区| 日本一级一片免费视频| 一本一本久久a久久精品综合麻豆| 亚洲免费在线观看av| 欧美一级片在线看| 国产在线观看黄| 久久久久中文字幕2018| 四虎影视成人精品国库在线观看| 92裸体在线视频网站| 久久av影视| 日韩av在线播放不卡| 国产麻豆精品在线观看| 日本一二三不卡视频| 欧美日韩亚洲网| 亚洲第一成人av| 麻豆乱码国产一区二区三区| 三级成人在线| 成人网中文字幕| 欧美日韩国产高清电影| 777精品久无码人妻蜜桃| 国产剧情av麻豆香蕉精品| 北京富婆泄欲对白| 国产欧美一区二区精品性| 久久久久久久久影院| 亚洲成人网久久久| 亚洲小说区图片| 26uuu另类亚洲欧美日本一| 97久久网站| 欧美日韩一区在线视频| 在线综合欧美| 成人性生活免费看| 亚洲成人精品一区二区| 亚洲精品无amm毛片| 欧美成人黄色小视频| 伊人亚洲精品| 永久免费精品视频网站| 免费在线视频一区| 久操视频在线观看免费| 欧美中文一区二区三区| 高清国产福利在线观看| 国产精品福利网站| 97品白浆高清久久久久久| 免费观看国产视频在线| 亚洲在线播放| 国产精品1000部啪视频| 岛国av在线不卡| 日本v片在线免费观看| 欧洲亚洲妇女av| 欧美日韩黄色| 国产女主播av| 国产成人av电影在线播放| 国产不卡在线观看视频| 亚洲电影一级黄| 午夜国产在线观看| 日本久久久久久| 欧美天天综合| 日本人69视频| 一区二区三区小说| 亚洲一级在线播放| 精品久久久999| 亚洲日本视频在线| 91免费黄视频| 国产一区二区三区精品欧美日韩一区二区三区 | 毛片基地黄久久久久久天堂| 九九这里只有精品视频| 日韩欧美123| 国产极品在线观看| 欧美精品一区二区三区在线四季| 亚洲日本免费| 特大黑人巨人吊xxxx| 亚洲午夜三级在线| 欧美日韩影视| 45www国产精品网站| 国产日韩视频在线| 久久久九九九热| 五月婷婷激情综合网| 国产亚洲依依| 91九色国产在线| 99精品国产福利在线观看免费| 师生出轨h灌满了1v1| 亚洲人成小说网站色在线| 免费a级片在线观看| 国产成人综合一区二区三区| 一区二区三区中文| 亚洲欧美色图视频| 欧美精品18+| 忘忧草在线日韩www影院| 伊人av成人| 久久99精品久久久久| 天堂网中文在线观看| 亚洲成人在线网| 国产原创一区| www..com日韩| 97久久人人超碰| 日本少妇吞精囗交| 中文字幕亚洲一区二区三区| 国产精品久久久网站|