【发布时间】:2016-12-13 19:56:09
【问题描述】:
我正在使用 Microsoft SQL Server 和 Excel。我有一个问题,我在如何计算某些字段以使其运行得更快时遇到问题。我有一个大型数据集,它被放入 excel 并卡在数据透视表中。
最简单的表格将包含许多类似于下面的字段。
日期用户 WorkType Count TotalTime
我的问题是我需要以特定方式计算平均值。每个用户在任何一天都可能有几种工作类型。我的公式是为每个 Date&User Sum(TotalTime)/Sum(Count) 获取以下信息
日期用户平均
目前我将一个选择查询转储到 excel 中,将公式应用于列以获取我的平均值,然后使用个人详细信息和平均值构建数据透视表。
然而,超过 20,000 行的计算大约需要 5-7 分钟。
所以我的问题是可以在 SQL 或数据透视表中进行这种类型的计算以减少处理时间。我对 Pivot 表不是很有信心,与这里相比,我被认为在 SQL 方面相当缺乏经验。我可以管理其中的一些部分,但是现在将它们与匹配日期和用户的条件结合在一起已经超出了我的范围。
我可以在将记录集写入电子表格之前将其解析为一个数组来进行计算,但我只是觉得应该有更好的方法来达到同样的目的。
【问题讨论】:
-
欢迎来到 StackOverflow!查看How to Ask,了解如何充分利用您在此处提出的问题的提示。例如,在这种情况下,最好先尝试一些东西,然后在遇到更具体的问题时再回来。对于您的特定问题,SQL 很有可能会更快地完成您尝试做的事情,但您可能会从学习如何自己编写它中受益更多,以便了解它在做什么。您可能不应该使用您不理解的代码。搜索如何使用聚合函数和分组依据。
-
谢谢你,我更愿意得到帮助,为我指明正确的方向,而不是“在这里使用这个”。我将继续深入研究,因为我认为 Group 可能是我错过的部分。当我之前试图弄清楚这一点时。
标签: sql-server excel vba