91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL怎么查詢每個分組都出現的字段值

發布時間:2022-01-15 15:45:04 來源:億速云 閱讀:326 作者:柒染 欄目:互聯網科技

今天給大家介紹一下SQL怎么查詢每個分組都出現的字段值。文章的內容小編覺得不錯,現在給大家分享一下,覺得有需要的朋友可以了解一下,希望對大家有所幫助,下面跟著小編的思路一起來閱讀吧。

數據分組以后,要找出在每個分組中都出現的某個字段值。

用SQL來解決這個問題并不容易!

SQL缺少單純的分組操作,只能返回各分組的統計值,而不能對各組的成員再進行更細的交、差、并等集合運算。要解決這種問題就需要多層嵌套子查詢來變相地實現。

舉個例子:查詢每周都加班的員工以進行表彰。現有加班數據表OVERTIME_WORK數據如下:

WORKDATENAME
2019-07-01Tom
2019-07-02John
2019-07-03Tom
2019-07-04Cart
2019-07-08Tom
2019-07-09Jordan
2019-07-10Kate
2019-07-10John
2019-07-15Leon
2019-07-16John
2019-07-17Tom
2019-07-18John
2019-07-22Jim
2019-07-23Tom
2019-07-24John
2019-07-25Cart

以Oracle為例,用SQL寫出來是這樣:

WITH A AS

       (SELECT COUNT(*) NUM FROM

        (SELECT DISTINCT TO_CHAR(WORKDATE,'IW') FROM OVERTIME_WORK )

        ),

B AS

        (SELECT TO_CHAR(WORKDATE,'IW') W, NAME

        FROM OVERTIME_WORK

        GROUP BY TO_CHAR(WORKDATE,'IW'), NAME

        ),

C AS

       (SELECT NAME, COUNT(*) NUM FROM B GROUP BY NAME )

SELECT NAME FROM C WHERE NUM=(SELECT NUM FROM A);

這里的A查出共有幾周,B查出每周加班的不同員工,C查出B里各員工的出現次數,最后從C里選出出現次數與總周數相等的員工。解決思路比較繞,這種SQL既難寫又難懂。

集算器的SPL語言支持集合運算,解決這個問題就會簡單很多,計算出每周加班員工的交集即可,只需1行代碼:

connect("mydb").query("SELECT * FROM OVERTIME_WORK").group((WORKDATE-date("2019-07-01"))\7).(~.(NAME)).isect()

以上就是SQL怎么查詢每個分組都出現的字段值的全部內容了,更多與SQL怎么查詢每個分組都出現的字段值相關的內容可以搜索億速云之前的文章或者瀏覽下面的文章進行學習哈!相信小編會給大家增添更多知識,希望大家能夠支持一下億速云!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

sql
AI

临漳县| 南岸区| 北宁市| 句容市| 南宫市| 长沙市| 顺昌县| 星座| 盱眙县| 连州市| 巴中市| 丹巴县| 读书| 定日县| 灵山县| 阳信县| 和林格尔县| 浮梁县| 长子县| 桃园县| 西充县| 许昌县| 连南| 苍山县| 台中县| 临邑县| 河间市| 德昌县| 深州市| 德保县| 阿拉善盟| 兴业县| 盘锦市| 龙南县| 汨罗市| 策勒县| 柏乡县| 桐城市| 漳平市| 沂源县| 郓城县|