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



我有两个表:

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 是什么样的?我熟悉分组和加入,但到目前为止还没有成功。 感谢您的输入!

我认为这就是你想要的:

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;

最新更新