溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

SQL怎么查詢(xún)每個(gè)分組都出現(xiàn)的字段值

發(fā)布時(shí)間:2022-01-15 15:45:04 來(lái)源:億速云 閱讀:326 作者:柒染 欄目:互聯(lián)網(wǎng)科技

今天給大家介紹一下SQL怎么查詢(xún)每個(gè)分組都出現(xiàn)的字段值。文章的內(nèi)容小編覺(jué)得不錯(cuò),現(xiàn)在給大家分享一下,覺(jué)得有需要的朋友可以了解一下,希望對(duì)大家有所幫助,下面跟著小編的思路一起來(lái)閱讀吧。

數(shù)據(jù)分組以后,要找出在每個(gè)分組中都出現(xiàn)的某個(gè)字段值。

用SQL來(lái)解決這個(gè)問(wèn)題并不容易!

SQL缺少單純的分組操作,只能返回各分組的統(tǒng)計(jì)值,而不能對(duì)各組的成員再進(jìn)行更細(xì)的交、差、并等集合運(yùn)算。要解決這種問(wèn)題就需要多層嵌套子查詢(xún)來(lái)變相地實(shí)現(xiàn)。

舉個(gè)例子:查詢(xún)每周都加班的員工以進(jìn)行表彰?,F(xiàn)有加班數(shù)據(jù)表OVERTIME_WORK數(shù)據(jù)如下:

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

以O(shè)racle為例,用SQL寫(xiě)出來(lái)是這樣:

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里各員工的出現(xiàn)次數(shù),最后從C里選出出現(xiàn)次數(shù)與總周數(shù)相等的員工。解決思路比較繞,這種SQL既難寫(xiě)又難懂。

集算器的SPL語(yǔ)言支持集合運(yùn)算,解決這個(gè)問(wèn)題就會(huì)簡(jiǎn)單很多,計(jì)算出每周加班員工的交集即可,只需1行代碼:

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

以上就是SQL怎么查詢(xún)每個(gè)分組都出現(xiàn)的字段值的全部?jī)?nèi)容了,更多與SQL怎么查詢(xún)每個(gè)分組都出現(xiàn)的字段值相關(guān)的內(nèi)容可以搜索億速云之前的文章或者瀏覽下面的文章進(jìn)行學(xué)習(xí)哈!相信小編會(huì)給大家增添更多知識(shí),希望大家能夠支持一下億速云!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

sql
AI