Foxtable(狐表)用户栏目专家坐堂 → 分组统计与占比统计的问题


  共有3941人关注过本帖树形打印复制链接

主题:分组统计与占比统计的问题

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/21 21:17:00 [显示全部帖子]

 如果是sqlGroupTableBuilder,和sql语句效率一样,因为最后也是生成一条sql语句执行的。

 

 但是 GroupTableBuilder 统计的是加载后的表,不是统计后台数据库,跟sql语句不是一样,所以无法比较。

 

 明显 GroupTableBuilder 会快一点点,因为已经把表加载了进来。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/21 21:33:00 [显示全部帖子]

 sql语句计算占比,这样弄

 

select *, 数量 / sum(数量) * 100 as 占比 from (Select 客户,year(制单日期),sum(数量) As 数量,sum(金额) As 金额 from 订单明细 a inner join 订单 b on a.订单编号 = b.订单编号 flt_where group by 客户,year(制单日期)) c


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/21 22:58:00 [显示全部帖子]

 感觉不应该报错才对。select * from c 的时候和分组无关了的。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/21 23:15:00 [显示全部帖子]

感觉不应该,没理由,你试试这样

 

Select 客户, (数量/sum(数量) * 100) As 占比 from (Select 客户,Year(制单日期) As 年,Month(制单日期) As 月,sum(数量) As 数量,sum(金额) As 金额 from 订单明细 a inner join 订单 b on a.订单编号 = b.订单编号 group by 客户,Year(制单日期),Month(制单日期)) c
 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/21 23:17:00 [显示全部帖子]

 或者可以试试这样,效率虽然低了一些。

 

Select 客户,Year(制单日期) As 年,Month(制单日期) As 月,sum(数量) As 数量,sum(金额) As 金额, sum(数量)/(Select sum(数量) from 订单明细) as 占比 from 订单明细 a inner join 订单 b on a.订单编号 = b.订单编号 group by 客户,Year(制单日期),Month(制单日期)


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/22 10:11:00 [显示全部帖子]

 测试了一下,确实不行。

 

 ----------------------------

 

 为什么难扩展,不就是sql语句拼凑一下即可么?


 回到顶部