首页 > 解决方案 > 一组结果中的sql分组

问题描述

我有一个名为“付款”的表格,其中包含以下数据

+---------------------------------------+
|   status    |  currency   |  amount   |  
+---------------------------------------+
| ------------------------------------- |
| paid        |  USD        |  10       |  
| pending     |  USD        |  20       | 
| processing  |  GBP        |  30       | 
| paid        |  GBP        |  40       | 
| paid        |  EUR        |  50       | 
| pending     |  USD        |  60       | 
| processing  |  EUR        |  70       | 
+----------------------------------------+

我需要编写一个查询,它会给我以下格式的结果

Paid : 3 
Processing: 2
Pending: 2

我可以使用以下查询来做到这一点

select status, count(status)
from payments
group by status;

现在我还需要知道每个高级组按货币分组的金额总和。例如,

对于有 3 条记录的付费状态,我还需要

USD: 10
GBP: 40
EUR: 50

我怎样才能做到这一点 ?

标签: sqloracle

解决方案


select status, currency, sum(amount)
from payments
group by status, currency;

推荐阅读