SQL 全外连接 + 分组依据 + 计数列

SQL full outer join + group by + count column

我有两个 table:

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 上的两个 table 进行 FULL OUTER JOIN。在结果 table 中,我想添加一个 COUNT 列,该列汇总了两个 table 的唯一货币组合的出现次数。如果另一个 table 中分别没有 ID/currency,则该组合中的货币值将显示为 [null]。对于上面的例子,结果 table 看起来像:

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

sql 长什么样子?我熟悉 group by 并加入,但到目前为止还没有成功。 感谢您的输入!

我想这就是你想要的:

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;