Oracle 中的聚合值
Aggregate values in Oracle
我在 Oracle 中有一个 table,它由以下多个列组成。
我正在寻找一种方法来聚合此 table 上的值以显示区域为 "Region name "
的国家/地区总和
accnt country region value
--------------------------------------
1 A AS 20
1 B AS 70
1 C AF 10
2 D NA 50
2 E AS 40
2 F AF 10
3 G NA 30
3 H AS 30
4 I NA 50
4 J NA 40
4 K NA 20
我怎样才能做到这一点?
感谢您的帮助
您可以使用 sum
函数并按 region
:
对结果进行分组
SELECT region, SUM(value)
FROM mytable
GROUP BY region
对于特定区域,您可以这样做:
select count(*) totalcountries, sum(value) as totalvalue
from tablename
where region = 'AS'
结果:
| totalcountries | totalvalue |
|----------------|------------|
| 4 | 160 |
对于多个区域,您可以这样做:
select count(*) as totalcountries, sum(value) as totalvalue
from test1
where region in ('AS','NA')
结果:
| totalcountries | totalvalue |
|----------------|------------|
| 9 | 350 |
要按地区获取信息,您可以按照 Mureinik 提到的方法进行操作
select region, count(*) as totalcountries, sum(value) as totalvalue
from test1
group by region
结果:
| region | totalcountries | totalvalue |
|--------|----------------|------------|
| AF | 2 | 20 |
| AS | 4 | 160 |
| NA | 5 | 190 |
如果您想按地区获取信息但只针对几个地区,您可以这样做:
select region, count(*) as totalcountries, sum(value) as totalvalue
from test1
where region in ('AS', 'NA')
group by region;
结果:
| region | totalcountries | totalvalue |
|--------|----------------|------------|
| AS | 4 | 160 |
| NA | 5 | 190 |
这里有一个 MySQL 的例子;相同的查询将适用于 Oracle。由于 SQLFiddle 不能很好地与 Oracle 配合使用,我选择使用 MySQL 对信息进行采样:http://sqlfiddle.com/#!9/081c0/4
我在 Oracle 中有一个 table,它由以下多个列组成。
我正在寻找一种方法来聚合此 table 上的值以显示区域为 "Region name "
的国家/地区总和accnt country region value
--------------------------------------
1 A AS 20
1 B AS 70
1 C AF 10
2 D NA 50
2 E AS 40
2 F AF 10
3 G NA 30
3 H AS 30
4 I NA 50
4 J NA 40
4 K NA 20
我怎样才能做到这一点?
感谢您的帮助
您可以使用 sum
函数并按 region
:
SELECT region, SUM(value)
FROM mytable
GROUP BY region
对于特定区域,您可以这样做:
select count(*) totalcountries, sum(value) as totalvalue
from tablename
where region = 'AS'
结果:
| totalcountries | totalvalue |
|----------------|------------|
| 4 | 160 |
对于多个区域,您可以这样做:
select count(*) as totalcountries, sum(value) as totalvalue
from test1
where region in ('AS','NA')
结果:
| totalcountries | totalvalue |
|----------------|------------|
| 9 | 350 |
要按地区获取信息,您可以按照 Mureinik 提到的方法进行操作
select region, count(*) as totalcountries, sum(value) as totalvalue
from test1
group by region
结果:
| region | totalcountries | totalvalue |
|--------|----------------|------------|
| AF | 2 | 20 |
| AS | 4 | 160 |
| NA | 5 | 190 |
如果您想按地区获取信息但只针对几个地区,您可以这样做:
select region, count(*) as totalcountries, sum(value) as totalvalue
from test1
where region in ('AS', 'NA')
group by region;
结果:
| region | totalcountries | totalvalue |
|--------|----------------|------------|
| AS | 4 | 160 |
| NA | 5 | 190 |
这里有一个 MySQL 的例子;相同的查询将适用于 Oracle。由于 SQLFiddle 不能很好地与 Oracle 配合使用,我选择使用 MySQL 对信息进行采样:http://sqlfiddle.com/#!9/081c0/4