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

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

成都創(chuàng)新互聯(lián)公司長期為近1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為宣城企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站建設(shè),宣城網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

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

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

SQL缺少單純的分組操作,只能返回各分組的統(tǒng)計值,而不能對各組的成員再進(jìn)行更細(xì)的交、差、并等集合運算。要解決這種問題就需要多層嵌套子查詢來變相地實現(xià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寫出來是這樣:

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既難寫又難懂。

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

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

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

網(wǎng)站題目:SQL怎么查詢每個分組都出現(xiàn)的字段值
鏈接地址:http://muchs.cn/article0/iideoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)營銷型網(wǎng)站建設(shè)、建站公司、ChatGPT搜索引擎優(yōu)化、App設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化