【发布时间】:2018-07-18 05:07:01
【问题描述】:
我有两个表,我需要对每个表运行查询。然后需要根据在两个表中找到的名称的出现次数对这两个查询的输出进行交叉和排序。
例如:
查询 1:
select * from userA
group by name
order by count(name) desc
---------------------------
ID | name | count(name)
---------------------------
1 | John | 2
2 | Mike | 1
3 | Laura | 1
---------------------------
查询 2:
select * from userB
group by name
order by count(name) desc
---------------------------
ID | name | count(name)
---------------------------
3 | Laura | 3
1 | John | 1
5 | Peter | 1
---------------------------
查询 3:
select * from userA
group by name
order by count(name) desc
intersect
select * from userB
group by name
order by count(name) desc
---------------------------
ID | name | count(name)
---------------------------
1 | John | 1
3 | Laura | 1
---------------------------
问题是 intersect 将重新运行 count 函数,丢弃每个查询运行的计数。我想看到的是以下输出:
---------------------------
ID | name | count(name)
---------------------------
3 | Laura | 4
1 | John | 3
---------------------------
有谁知道如何做到这一点?
【问题讨论】: