如何在共享id的两个表上获得组合计数

时间:2017-01-18 18:24:54

标签: sql

我有两个成绩单表,A_Transcript和B_Transcript,我想要一个查询,它将为我提供所有超过2个成绩单的用户(跨两个表)。谢谢!

如果我只有一个包含数据的表,那么这就是查询:

select user_Id, count(*) From A_Transcript group by user_ID having count(*) > 2;

2 个答案:

答案 0 :(得分:1)

您需要在分组之前从两个表中获取完整的用户ID列表,并且您需要UNION ALL来执行非独特的联合:

SELECT user_Id, count(*)
FROM
(
     SELECT user_Id
     FROM A_Transcript a
     UNION ALL
     select user_Id
     FROM B_Transcript b
) combined
GROUP BY user_Id
HAVING COUNT(*) >2

答案 1 :(得分:0)

您可以将两个查询合并在一起。

SELECT user_Id, count(*) FROM A_Transcript
GROUP BY user_ID
HAVING count(*) > 2
UNION
SELECT user_Id, count(*) FROM B_Transcript
GROUP BY user_ID
HAVING count(*) > 2