国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

sql求交集與差集

這篇具有很好參考價值的文章主要介紹了sql求交集與差集。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

日常工作中,針對兩個表A,B,求A與B表中同一個字段的交集與差集是常見需求,下面我們來總結(jié)一下求交集與差集的方法。

假設(shè)現(xiàn)在有兩張表A,B,A,B表中均有一個字段為id,現(xiàn)在我們想求
A與B中都存在的id有多少個(去重),在A中但不在B中的id有多少個。

1.求交集

1.1 通過join求交集

要求交集,我們最先想到的是可以通過join的方式來實現(xiàn)。

select count(distinct id) from A 
join B
on A.id = B.id;

常規(guī)的join操作,不解釋。

1.2 通過in求交集

通過in操作實現(xiàn)求交集的功能。

select count(distinct id) from A where id in(select id from B);

1.3 通過exists求交集

select count(distinct id) from A where  exists(select id from B where B.id = A.id);

exists可以用來判斷是否存在。如果exists中的查詢內(nèi)容存在,結(jié)果則返回為真,否則為假。
如果exists在where條件中,會先對where條件前的主查詢進行查詢。待主查詢完畢以后,會將結(jié)果代入exists中的子查詢進行判斷,最后根據(jù)判斷結(jié)果,如果為true輸出,false不輸出。

2.求差集

如果是求差集,join的方式就不好用了,我們可以用not in或者not exists的方式來進行操作。文章來源地址http://www.zghlxwxcb.cn/news/detail-415864.html

2.1 not in求差集

select count(distinct id) from A where id not in(select id from B where id is not null)

2.2 not exists求差集

select count(distinct id) from A where  not exists(select id from B where B.id = A.id);

到了這里,關(guān)于sql求交集與差集的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • java8利用Stream方法求兩個List對象的交集、差集與并集(即:anyMatch和allMatch和noneMatch的區(qū)別詳解)

    1、anyMatch? 判斷數(shù)據(jù)列表中是否存在任意一個元素符合設(shè)置的predicate條件,如果是就返回true,否則返回false。 接口定義: boolean anyMatch(Predicate? super T predicate); 方法描述: 在anyMatch 接口定義中是接收 Predicate 類型參數(shù),在Lamdba表達式中 PredicateT 是接收一個T類型參數(shù),然后經(jīng)過

    2024年02月06日
    瀏覽(92)
  • SQL 查詢兩個時間段是否有交集的情況 三種寫法

    mysql 寫法 其他一樣 數(shù)據(jù)庫的字段 start_time, end_time 輸入的字段 a,b 第一種 ?第二種 ?第三種 ?三種結(jié)果相同 推薦用第三種? 200萬數(shù)據(jù)測試 第一種23秒 第三種19秒 總結(jié)起來就一句話:最小值 小于等于 最大值 并且 最大值 大于等于 最小值,則一定有交集。

    2024年01月18日
    瀏覽(30)
  • python 計算列表的交集,并集,差集

    如果是列表的話,先將列表轉(zhuǎn)為集合,使用集合去操作,返回的結(jié)果也為集合 比如兩個列表: 1. 并集,就是a和b的所有元素 2. 差集,b有,a沒有的元素 3. 交集,ab共有的元素 4. 對稱差集,a和b所有不屬于set(b) set(a)的集合

    2024年02月15日
    瀏覽(29)
  • JavaScript:交集和差集的應(yīng)用場景

    JavaScript:交集和差集的應(yīng)用場景

    在集合A和集合B中,屬于集合A,同時也屬于集合B的元素組成的集合,就是 交集 。 在A中所有不屬于集合B元素,組合成集合,就是 差集 。 那么在平時的開發(fā)中,如何使用差集和交集來解決問題呢? 現(xiàn)在有這樣的場景,在一個表格編輯數(shù)據(jù)后,要把編輯前的數(shù)據(jù)和修改后的數(shù)

    2024年02月12日
    瀏覽(24)
  • go 計算map 差集、并集、交集

    原文鏈接: https://www.zhoubotong.site/post/95.html 某些業(yè)務(wù)場景可能需要實現(xiàn)兩個或者多個map 的交差并集,一下舉個簡單的demo, 思路其實并不復(fù)雜: 輸出: 代碼中有簡單說明,不難看出實現(xiàn)過程其實比較簡單。

    2023年04月23日
    瀏覽(35)
  • 【Java】求兩集合的交集、并集、差集

    1、removeAll方法:從list中刪除指定集合中包含的所有元素。 2、retainAll方法:從list中刪除指定集合中不包含的所有元素。 3、addAll方法:用來向Set集合添加另一個集合對象所包含的所有內(nèi)容。 參考鏈接:https://www.cnblogs.com/hxf-zb/p/16102135.html 利用集合的contains方法,來對比第二個

    2024年02月16日
    瀏覽(21)
  • Java 集合操作之交集、并集和差集

    在 Java 編程中,經(jīng)常需要對集合進行一些操作,比如取兩個集合的交集、并集和差集。本文將介紹如何使用 Java 集合框架中的方法來實現(xiàn)這些集合操作,并通過源碼解析來深入了解其實現(xiàn)原理。 先上代碼 執(zhí)行結(jié)果 此處各操作會改動原始集合,所以此處的操作都是創(chuàng)建了一個

    2024年02月09日
    瀏覽(18)
  • HuTool工具類 CollUtil 實現(xiàn)多個集合的交集、差集

    驗證用數(shù)據(jù)集準備: 一、交集 1、不去重交集 輸出: 交集結(jié)果:[4, 5, 5] 2、去重交集

    2024年02月05日
    瀏覽(162)
  • java8集合操作(排序、取交集、并集、差集、去重并集)分組

    java8集合操作(排序、取交集、并集、差集、去重并集)分組

    一、List集合轉(zhuǎn)換成Set集合 Set@NotNull Long ids =entityList.stream().filter(e - e != null).map(UserCopyPointEntity::getPointId).collect(Collectors.toSet()); 二、集合map的循環(huán) map.forEach((k, v) - { System.out.println(k + \\\"----\\\" + v); }); 三、集合排序,名稱排序,順序排序 if (result.size() 0) { // 樓層排序, 從小到大排序

    2024年02月16日
    瀏覽(89)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包