我有一个包含两个成本的数据库表。我想找到这两列的不同成本。我也想找出这些成本出现的次数。该表可能看起来像
|id|cost1|cost2|
|1 |50 |60 |
|2 |20 |50 |
|3 |50 |70 |
|4 |20 |30 |
|5 |50 |60 |
在这种情况下,我想要一个在两列上都不同的结果并计算出现的次数。所以我想要的结果是
|distinctCost|count|
|20 |2 |
|30 |1 |
|50 |4 |
|60 |2 |
|70 |1 |
并且理想地订购
|disctinCost1|count|
|50 |4 |
|60 |2 |
|20 |2 |
|70 |1 |
|30 |1 |
我可以通过执行类似的操作来获得两列的不同
select DISTINCT c FROM (SELECT cost1 AS c FROM my_costs UNION SELECT cost2 AS c FROM my_costs);
我可以通过做得到每一列的计数
select cost1, count(*)
from my_costs
group by cost1
order by count(*) desc;
我的问题是如何获得两列的计数?我被困在如何对每一列进行计数然后将其相加。
任何指针将不胜感激。
我正在使用 Oracle 数据库。
谢谢