sql - 在Oracle查询中显示总计、小计、百分比

标签 sql oracle10g

问题,

我有这样的表格:

PID Category Year
1    AAA     2011
2    AAA     2012
3    BBB     2011
4    CCC     2010
5    CCC     2011
6    CCC     2012

我需要将输出显示为:

Subtotal Total Category  Year   Percentage
1         1      CCC      2010    100%
1         2      AAA      2011    50%
1         2      BBB      2011    50%
1         2      AAA      2012    50%
1         2      CCC      2012    50%

其中小计是特定年份该类别的计数。 总计是特定年份的计数,包括所有类别。 百分比为小计/总计 *100

最佳答案

select subtotal, 
       total,
       category, 
       year,
       subtotal / total * 100 as percentage
from (
  select count(*) over (partition by category, year) as subtotal,
         count(*) over (partition by year) as total,
         category,
         year
  from the_unknown_table
) t
order by year;

关于sql - 在Oracle查询中显示总计、小计、百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13826569/

相关文章:

java - 查看 oracle 应用程序并获取 : java. lang.ClassNotFoundException : oracle. forms.engine.Main

sql - REGEXP_SUBSTR 查找组

php - 解决 SQL 查询结果中的歧义

sql - 如何只显示sql结果中的日期

php - 绑定(bind)一个并不总是设置的参数

C# SQL父子表选择查询帮助

python - 最小化加载多对多关系的性能问题

SQL 设置运算符 - 从具有不同列的表中选择行

database - 如何手动卸载 Oracle?

sql - 甲骨文 10g : truncate string