簡體   English   中英

來自2個表的GROUP BY和COUNT的SQL連接結果

[英]SQL join results from GROUP BY and COUNT in 2 tables

表1(VID是唯一的)

VID|UID
99 | 11
56 | 12
52 | 11
24 | 13
14 | 13

要通過UID計算記錄,

SELECT count(*),UID from t1 GROUP by UID
------------
count(*)|UID
       2| 11
       1| 12
       2| 13

表2(是表1的子集)

VID
99
52
14

要在與表1映射后按UID計數記錄,

SELECT count(*),uid from t1 WHERE vid in (SELECT vid from t2) group by uid
------------
count(*)|UID
       2|11
       1|13

現在我可以基於第二個結果和1個SQL將這兩個結果表連接在一起,結果是:

t1Count|t2Count|UID
      2|      2|11
      2|      1|13

如果我想加入一個包含UID信息的額外表怎么辦:

UID|info
 11|....
 12|....
 13|....
 14|....
 15|....

這樣的結果是:?

t1Count|t2Count|UID|info
      2|      2|11 |....
      2|      1|13 |....

嘗試下面的查詢以獲得所需的結果。

select t1count,t2count,tab1.UID from (SELECT count(*) as t1count,UID from t1 GROUP by UID
    ) tab1
    inner join 
    (SELECT count(*) as t2Count,uid from t1 WHERE vid in (SELECT vid from t2) group by uid)  tab2
    on tab1.UID=tab2.UID

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM