SQL完全外部联接+分组+ +计数列

问题描述 投票:0回答:1

我有两个表:

currency_table_1

ID  -  currency_1
------------------
01  -   EUR
02  -   EUR
03  -   EUR
04  -   USD
05  -   USD
06  -   USD

currency_table_2

ID  -  currency_2
------------------
01  -   EUR
02  -   EUR
04  -   JPY
05  -   JPY
06  -   JPY
07  -   JPY

我想将ID上的两个表完全加入外部。在结果表中,我想添加一个COUNT列,该列将两个表的唯一货币组合的出现次数相加。如果在另一个表中分别没有ID /货币,则该组合中的货币值将显示为[null]。对于上面的示例,结果表如下所示:

Count -  currency_1  -  currency_2
----------------------------------
3     -     USD      -    JPY
2     -     EUR      -    EUR
1     -     EUR      -    [null]
1     -     [null]   -    JPY

sql看起来如何?我对group by和join很熟悉,但是到目前为止还没有成功。感谢您的输入!

sql group-by count full-outer-join
1个回答
0
投票

我认为这是您想要的:

select ct1.currency_1, ct2.currency_2, count(*)
from currency_table1 ct1 full join
     currency_table2 ct2
     on ct1.id = ct2.id
group by ct1.currency_1, ct2.currency_2;
© www.soinside.com 2019 - 2024. All rights reserved.