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

驚艷到我的十個 MySQL高級查詢技巧!

數(shù)據(jù)庫 MySQL
如果您想要查詢子查詢,那就是CTEs施展身手的時候 - CTEs基本上創(chuàng)建了一個臨時表。使用常用表表達式(CTEs)是模塊化和分解代碼的好方法,與您將文章分解為幾個段落的方式相同。

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

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

那個說,我們走了!

1.常見表表達式(CTEs)

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

使用常用表表達式(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發(fā)揮作用的地方。

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)

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

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

2.遞歸CTEs

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

遞歸CTE有3個部分:

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

以下是獲取每個員工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.臨時函數(shù)

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

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

考慮以下示例:

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

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

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

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

4.使用CASE WHEN樞轉數(shù)據(jù)

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

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

示例問題:編寫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

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

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

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

6.自聯(lián)結

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

讓我們來看看一個例子。

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

+----+-------+--------+-----------+
| 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

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

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

在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()如果未定義第二條標準,則任意分配數(shù)字。

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

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

8.計算Delta值

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

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

這是一些例子:

# 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.計算運行總數(shù)

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

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

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

圖片圖片

10.日期時間操縱

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

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

  • 提煉
  • 日元
  • 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


責任編輯:武曉燕 來源: 程序員小富
相關推薦

2025-08-14 02:00:00

2025-10-13 01:00:00

2023-07-02 14:21:06

PythonMatplotlib數(shù)據(jù)可視化庫

2022-11-07 16:06:15

TypeScript開發(fā)技巧

2023-05-24 16:48:47

Jupyter工具技巧

2011-05-19 13:15:44

PHP

2024-01-07 20:14:18

CSS開發(fā)工具

2024-12-03 14:33:42

Python遞歸編程

2024-11-11 08:11:39

2025-11-12 07:43:00

2015-08-24 09:12:00

Redis 技巧

2024-12-10 08:20:44

2022-05-12 08:12:51

PythonPip技巧

2024-12-24 08:23:31

2023-01-17 16:43:19

JupyterLab技巧工具

2023-10-16 07:55:15

JavaScript對象技巧

2024-01-30 00:40:10

2010-09-08 14:35:22

CSS

2011-08-22 12:24:56

nagios

2023-06-05 16:50:06

開發(fā)TypeScriptJavaScript
點贊
收藏

51CTO技術棧公眾號

欧美国产不卡| 国产精品13p| 国产在线看一区| 欧美老女人性视频| 毛茸茸free性熟hd| 欧美一级二级视频| 亚洲美女视频在线| 免费在线观看91| 一区二区三区www污污污网站| 亚洲视频在线免费| 日韩国产高清视频在线| 污版视频在线观看| 8x8ⅹ拨牐拨牐拨牐在线观看| 国产午夜精品一区二区三区四区| 亚洲一区二区三区sesese| 午夜影院在线看| 久久综合99| 日韩国产精品视频| 波多野结衣在线免费观看| 少妇淫片在线影院| 一区二区三区四区在线播放| 欧美在线一二三区| 国产成人自拍一区| 精品一区免费av| 国产91九色视频| 国产精彩视频在线观看| 99久久亚洲精品| 亚洲欧美在线免费| www.555国产精品免费| 日本一区二区三区中文字幕| 色综合久久99| 欧美视频免费看欧美视频| 精品麻豆一区二区三区| 国产三级三级三级精品8ⅰ区| 超碰97网站| 影音先锋黄色网址| 视频在线观看91| 97国产精品视频| 欧美成欧美va| 亚洲天堂一区二区三区四区| 最近2019中文字幕一页二页| 熟女俱乐部一区二区视频在线| 在这里有精品| 日韩女优av电影| 手机在线视频一区| 激情久久99| 欧美日韩精品专区| 九九热在线免费| 日本欧美一区| 精品视频免费看| 国产视频一区二区三区在线播放 | 91小视频在线观看| av资源站久久亚洲| 午夜精品一二三区| 国产老肥熟一区二区三区| 91免费看片网站| 国产又粗又猛又黄又爽无遮挡| 免费观看30秒视频久久| 国产精品美乳在线观看| 做爰视频毛片视频| 免费成人小视频| 91精品久久久久久综合乱菊 | 亚洲护士老师的毛茸茸最新章节| 蜜臀一区二区三区精品免费视频| 国产福利91精品一区二区| 狠狠综合久久av一区二区小说| 久久精品视频16| 在线天堂资源| 欧美少妇xxx| 久久久久久综合网| 一区二区三区免费在线看| 亚洲不卡av不卡一区二区| 亚洲激情电影中文字幕| 日韩av无码一区二区三区不卡| 高清欧美性猛交xxxx黑人猛| 日韩成人小视频| 免费看黄色的视频| 色呦哟—国产精品| 欧美老少做受xxxx高潮| 国产 欧美 日韩 在线| 日韩精品久久久久久| 国产精品一久久香蕉国产线看观看| 亚洲天堂手机在线| 狠狠色狠狠色综合| 国产精品日韩欧美一区二区三区| 亚洲欧洲综合在线| 国产精品丝袜91| 免费cad大片在线观看| √最新版天堂资源网在线| 欧美午夜精品伦理| 亚洲免费av一区| 一区二区三区免费在线看| 亚洲美女在线视频| 日韩影院一区二区| 国产日韩专区| 成人国产在线激情| 天堂成人在线| 亚洲视频一二三区| 国产在线观看福利| 亚洲爽爆av| 日韩精品一区二区视频| 久草福利资源在线| 伊人久久亚洲热| 国产精品一区专区欧美日韩| 亚洲第一黄色片| 国产欧美精品区一区二区三区 | 亚洲国产激情| 国产精品视频免费观看www| 国产富婆一级全黄大片| 久久精品亚洲乱码伦伦中文| 9色视频在线观看| 三级成人在线| 亚洲第一福利视频| 最新av电影网站| 久久一本综合频道| 国产精品一区二区你懂得| 成人18在线| 天天影视涩香欲综合网| aaaaaaaa毛片| 日韩免费av| 日本欧美中文字幕| 黄色一级大片在线免费看国产| 亚洲国产高清在线观看视频| 熟女少妇在线视频播放| 日韩欧美一级| 日韩性生活视频| 日日夜夜操视频| 成人黄色av电影| 超薄肉色丝袜足j调教99| 国产极品嫩模在线观看91精品| 日韩www在线| 久久成人国产精品入口| 国内成人免费视频| 亚洲一区二区三区涩| 黄瓜视频成人app免费| 国产午夜精品理论片a级探花| 久久免费在线观看视频| 国产一区 二区 三区一级| 亚洲精品二区| 国产精品字幕| 一区二区三区视频观看| 香蕉影院在线观看| 91在线porny国产在线看| 国产色一区二区三区| 亚洲国产中文在线| 欧美裸体xxxx极品少妇| av天堂一区二区三区| 亚洲三级免费电影| 日韩在线一区视频| 91精品一区二区三区综合| 国产一区红桃视频| 免费在线观看黄色网| 欧美裸体一区二区三区| 亚洲视频重口味| 国产盗摄精品一区二区三区在线 | heyzo高清中文字幕在线| 欧美xxx久久| 豆国产97在线 | 亚洲| 高清久久久久久| 成年人网站国产| 欧美三级电影在线| 日本成人在线视频网址| 国产精品99999| 欧美日韩免费在线视频| 成年人免费视频播放| 久久97超碰色| 久久香蕉视频网站| 国产精品videossex| 8050国产精品久久久久久| 欧美套图亚洲一区| 欧美吞精做爰啪啪高潮| 国产成人自拍网站| 国产成人在线色| 日韩欧美一区二| 日韩电影免费网站| 51蜜桃传媒精品一区二区| 欧美寡妇性猛交xxx免费| 日韩成人性视频| 最近中文字幕在线视频| 亚洲精品综合在线| 超碰男人的天堂| 免费在线一区观看| 大荫蒂性生交片| 国产一区二区三区站长工具| 91牛牛免费视频| 日韩电影免费看| 日韩在线视频网站| 丰满岳乱妇国产精品一区| 色婷婷av一区二区三区之一色屋| 日韩一区二区三区四区视频| 丁香六月久久综合狠狠色| 日韩精品一区中文字幕| 亚洲国产精品久久久天堂| 国模精品一区二区三区| 懂色aⅴ精品一区二区三区| 欧美激情在线观看视频| 国外av在线| 亚洲大尺度美女在线| 亚洲天堂狠狠干| 欧美日韩午夜剧场| 日韩三级在线观看视频| xfplay精品久久| 国产老头和老头xxxx×| 三级亚洲高清视频| 国产 欧美 日本| 青青草成人影院| 国产一区免费视频| 精品国产亚洲一区二区三区在线| 欧美一区视频在线| 羞羞网站在线免费观看| 一区二区三区黄色| 熟妇高潮一区二区高潮| 91精品国产综合久久久蜜臀粉嫩| 麻豆成人免费视频| 午夜精品久久久久久久99樱桃 | 久久久久国产| 欧美一区二区三区四区五区六区| 91麻豆精品国产91久久久久推荐资源| 国产精品久久久久久久久久新婚| h片在线观看下载| 美女久久久久久久| 午夜免费视频在线国产| 亚洲欧美一区二区三区情侣bbw | 久热精品视频在线观看| 国产毛片av在线| 日韩黄在线观看| 久久精品国产精品青草色艺| gogo亚洲高清大胆美女人体| 91精品国产色综合久久不卡98| 黄色网址在线免费观看| 色妞欧美日韩在线| 国产一级片在线| 亚洲欧美在线一区| 欧美成人免费| 亚洲老头老太hd| 日本人妻丰满熟妇久久久久久| 日韩美女视频一区二区在线观看| 国产又黄又大又爽| 欧美美女视频在线观看| 中文字幕一区二区三区四区视频 | 国产玖玖精品视频| 性欧美gay| 日韩免费不卡av| 欧美亚洲韩国| 国产精品劲爆视频| 日本中文字幕一区二区| 国产精品激情av在线播放| 成人h在线观看| 成人精品久久久| 婷婷精品久久久久久久久久不卡| 国产有码一区二区| 香蕉成人在线| 亚洲综合最新在线| 亚洲日本一区二区三区在线| 亚洲一区二区久久久久久久| 中文字幕区一区二区三| 国产精品久久久久久久久久久久午夜片| 久久99成人| 国产精品乱子乱xxxx| 国产精品天天看天天狠| 国产在线精品日韩| 亚洲69av| 亚洲欧洲一区二区福利| 欧美疯狂party性派对| 五月天综合婷婷| 亚洲一级二级| 日本wwww视频| 男人的天堂亚洲一区| 超碰成人在线播放| 国产经典欧美精品| 日b视频在线观看| 中文字幕久久午夜不卡| 26uuu成人网| 亚洲国产精品久久久久秋霞影院| 日韩精品久久久久久免费| 91官网在线观看| 国产三级在线观看视频| 亚洲成色777777女色窝| 国产福利免费在线观看| 久久成人在线视频| 女人高潮被爽到呻吟在线观看| 国产成人亚洲综合青青| 日日狠狠久久| 国产亚洲精品久久飘花| 成人激情免费视频| 激情成人开心网| 日日摸夜夜添夜夜添精品视频| 青娱乐精品在线| 久久九九久久九九| caoporn91| 在线观看国产91| 精品人妻伦一二三区久久| 亚洲老司机av| 色呦呦在线播放| 国产精品国产亚洲伊人久久| 中文字幕av一区二区三区四区| 日本一区二区在线视频| 国精品一区二区| 2025韩国理伦片在线观看| 成人成人成人在线视频| 亚洲精品电影院| 欧美性69xxxx肥| 精品国产18久久久久久| 亚洲网在线观看| 91福利区在线观看| 91精品国产综合久久香蕉| 亚洲精品亚洲人成在线| 韩国无码av片在线观看网站| 日韩精品一二三| 天天躁日日躁狠狠躁av麻豆男男| 国产精品传媒在线| 精品国产乱子伦| 亚洲国产日韩欧美在线99| 国产原厂视频在线观看| 日本一本a高清免费不卡| 国产精品色呦| www婷婷av久久久影片| 久色婷婷小香蕉久久| 在哪里可以看毛片| 香港成人在线视频| 精品国产乱码一区二区三| 最近2019中文字幕mv免费看| 在线成人视屏| 欧美国产视频在线观看| 国产精品普通话对白| 女同性αv亚洲女同志| 亚洲视频免费看| 一级片视频网站| 神马久久桃色视频| 成人自拍视频网| 亚洲欧洲一区二区福利| 免费不卡在线视频| 天堂久久精品忘忧草| 一本大道久久精品懂色aⅴ| 高潮一区二区三区乱码| 久久99精品久久久久久噜噜 | 91精品午夜视频| 午夜免费视频在线国产| 国产玖玖精品视频| 91视频精品| 香蕉视频xxxx| 一区二区三区中文字幕精品精品| 精品国产九九九| 欧美激情视频一区| 国产精品qvod| 一本大道熟女人妻中文字幕在线| 99久久精品99国产精品| 一级片中文字幕| 国产视频在线观看一区二区| 欧美片第一页| 日韩精品一区二区三区外面| 日韩av中文在线观看| 精品丰满少妇一区二区三区| 欧美日韩久久一区| 国产一二区在线| 国产厕所精品在线观看| 99精品视频免费全部在线| 成人手机在线免费视频| 色婷婷久久久亚洲一区二区三区 | 国产精品麻豆99久久久久久| 97成人在线观看| 久久99久久久久久久噜噜| 国产精品中文字幕制服诱惑| 日韩免费一级视频| 久久久www成人免费毛片麻豆| 中文区中文字幕免费看| 久久中文久久字幕| 国产ts一区| 亚洲三级视频网站| 亚洲欧美电影一区二区| 黄色小视频免费观看| 国产精品国产福利国产秒拍| 99久久99视频只有精品| 永久免费未满蜜桃| 色狠狠综合天天综合综合| 欧美成人hd| 精品日本一区二区| 麻豆成人免费电影| 精品无码一区二区三区电影桃花| 精品亚洲一区二区三区| 日韩五码电影| 国产亚洲综合视频| 国产精品久久久久一区二区三区共 | 国产亚洲欧美另类一区二区三区| 视频一区二区中文字幕| 中文字幕在线2021| 亚洲视频在线观看视频| 欧美视频精品全部免费观看| 无遮挡又爽又刺激的视频| 亚洲视频在线观看三级| 免费毛片在线| 99久热re在线精品视频| 日韩高清不卡一区| 清纯粉嫩极品夜夜嗨av| 伊人久久免费视频| 风间由美一区二区av101| 亚洲老女人av| 性做久久久久久免费观看| 日本www在线| 欧美精品一区二区三区四区五区|