繁体   English   中英

按年份和计数对SQL结果进行分组

[英]Grouping SQL results by Year and count

我有一个具有以下结构的表:

在此处输入图片说明

我想以以下格式使用sql检索结果

在此处输入图片说明

我是SQL的新手,无法弄清楚该如何做。 不使用程序就可以吗? 我该如何实现? (实际数据量很大,这里我只提供了快照)

它的一部分正在发展。 行和列的总计(实际上甚至是透视)都应在报表应用程序中完成,而不是在SQL中完成。 如果您坚持要使用SQL进行操作,则可以使用更简便的方法,但是下面的一些愚蠢的查询就足够了。

with test_data (city, yr, ct) as (
        select 'Tokyo' , 2016,  2 from dual union all
        select 'Mumbai', 2013,  3 from dual union all
        select 'Mumbai', 2014,  5 from dual union all
        select 'Dubai' , 2011,  5 from dual union all
        select 'Dubai' , 2015, 15 from dual union all
        select 'Dubai' , 2016,  8 from dual union all
        select 'London', 2011, 16 from dual union all
        select 'London', 2012, 22 from dual union all
        select 'London', 2013,  4 from dual union all
        select 'London', 2014, 24 from dual union all
        select 'London', 2015, 13 from dual union all
        select 'London', 2016,  5 from dual
     ),
     test_with_totals as (
        select          city,   yr, ct       from test_data                  union all
        select          city, 9999, sum(ct)  from test_data   group by city  union all
        select 'Grand Total', yr  , sum(ct)  from test_data   group by yr    union all 
        select 'Grand Total', 9999, sum(ct)  from test_data
     )
select * from test_with_totals
pivot ( sum (ct) for yr in (2011, 2012, 2013, 2014, 2015, 2016, 9999 as "Total"))
order by "Total";

结果:

CITY              2011       2012       2013       2014       2015       2016      Total
----------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
Tokyo                                                                       2          2
Mumbai                                     3          5                                8
Dubai                5                                          15          8         28
London              16         22          4         24         13          5         84
Grand Total         21         22          7         29         28         15        122

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM