专栏名称: 爱数据LoveData
中国统计网(www.itongji.cn),国内最大的数据分析门户网站。提供数据分析行业资讯,统计百科知识、数据分析、商业智能(BI)、数据挖掘技术,Excel、SPSS、SAS、R等数据分析软件等在线学习平台。
目录
相关文章推荐
51好读  ›  专栏  ›  爱数据LoveData

SQL干货: Group by 的plus版

爱数据LoveData  · 公众号  · BI  · 2019-06-08 15:30

正文

请到「今天看啥」查看全文


(orderid) as sales from t where deal_date between "2019-05-01" and "2019-05-31" group by area ,province


城市成交量

select    area    ,province     ,city    ,count(orderid) as sales  from     t where     deal_date between "2019-05-01" and "2019-05-31"group by     area    ,province     ,city


店铺成交量

select     area    ,province     ,city    ,shop    ,count(orderid) as sales  from     t where     deal_date between "2019-05-01" and "2019-05-31"group by     area    ,province     ,city    ,shop


上面这种方法可以达到我们的目的,满足我们的需求,但是这种方法太低效了,我们在Excel中还需要做合并处理,很麻烦。 能不能把上面几种结果在 Sql 中就进行合并处理,这样就不需要在 Excel 中合并了。 答案是可以的,需要借助的就是 union和 union all,对查询结果进行纵向合并。


union 和 union all的区别在于: 前者是对合并后的结果进行去重处理,而后者返回合并后的所有数据。


具体代码如下:

select null,null,null,null,count(orderid) as sales from t where deal_date between "2019-05-01" and "2019-05-31"
union all
select area,null,null,null,count(orderid) as sales from t where deal_date between "2019-05-01" and "2019-05-31"group by area
union all






请到「今天看啥」查看全文