ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2437|回复: 6

[求助] 求SQL查询生成累计值的优化方法

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-5-22 13:42 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Access有张表
字段为:
统计年月
品牌
型号
销售额

希望用excel通过SQL查询生成
1、每月各个品牌 的 型号销售排名(销售额由高到低);
2、并且按以上排名计算 型号的累加销售额。

问题
我尝试用了2种方法
1、域聚合函数(dsum/dcount);
2、用子查询


但当数据量大时,速度非常慢,慢到了命短的等不到的程度。呵呵。
实际上我要统计约有30个品牌,每个品牌每月大约有100~400个型号(即每月大概1万行数据),并且数据不断在增加。
在附件大约1万行的数据,我用聚合函数生成累计值,要花2个小时时间,哎,实在太慢了。


求高手赐教如何高效使用SQL查询生成累计值的方法。




请见附件



test.rar

394.6 KB, 下载次数: 19

TA的精华主题

TA的得分主题

发表于 2014-5-22 13:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
能不能转出2003版的来发一下啊。

TA的精华主题

TA的得分主题

发表于 2014-5-22 14:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
由于access没有排名函数,所以这种做法确实很慢
建议
在EXCEL中直接插入一个序数列,即为排名
然后用sum函数做累积即可

TA的精华主题

TA的得分主题

发表于 2014-5-22 15:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
这个有点夸张吧,才一万条,用DSUM等要2小时

你是不是进行排序了,最好不要在数据库里进行排序

数据只需要在展现的时候排序即可,在库里没必要排序

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-5-23 08:43 | 显示全部楼层
amazeyeli 发表于 2014-5-22 14:24
由于access没有排名函数,所以这种做法确实很慢
建议
在EXCEL中直接插入一个序数列,即为排名

是在excel用coundifs函数做一个序数列吗?这样好像也很慢哦。(excel的countifs函数也很慢)
高手能否给个例子。谢谢

TA的精华主题

TA的得分主题

发表于 2014-5-23 14:36 | 显示全部楼层
本帖最后由 amazeyeli 于 2014-5-23 14:48 编辑

AmaZeYeLi.gif

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-5-26 08:41 | 显示全部楼层
amazeyeli 发表于 2014-5-23 14:36

哦,明白了。谢谢高手
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 10:55 , Processed in 0.036646 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表