2015-03-13 46 views
0

我有一个关于结构化查询的问题。我有5个表格,我需要从中获取特定数据或需要处理的数据。我需要根据这些表中的数据进行计算,但首先我需要显示不需要进行任何计算的数据列。到目前为止,我做了一个临时表,并根据需要在表中查询了所有列。我的下一个任务和思考过程是创建另一个临时表并执行所有计算并填写它们,然后将两个临时表合并到一个表中。查询计算和临时表

我的问题:对于所有这些计算,一些需要基于平均值的计算,计数,总和等,总共将有至少10个新列。我遇到的问题是构建一个查询,使我能够从表中实现这些计算并实现我期望的结果。任何人都可以帮助这个复杂的查询和结构吗?

回答

0

数据样本可能会有所帮助。如果适用,我建议使用T-SQL的窗口函数来完成聚合。窗口函数允许您执行这些聚合,而无需执行多个GROUP BY。当数据需要聚合到不同的组时,这非常有用,因为它允许您在一个查询中执行所有聚合,而不必编写一个查询,而不必编写多个查询,所有查询都使用不同的GROUP BY。

这里是T-SQL中基本窗口函数的链接。 https://msdn.microsoft.com/en-us/library/ms189461.aspx

当对数据集执行多个聚合时,公用表表达式(CTE)也非常有用,因为它们允许您更好地按逻辑顺序排列查询的可读性。您创建的每个CTE都可以引用上面创建的任何CTE,这可以让您在生成最终输出之前将多个CTE链接在一起。

以下是一些基本的CTE示例的链接(请参阅使用多个CTE的示例C)。 https://msdn.microsoft.com/en-us/library/ms175972.aspx

希望这些帮助。

+0

嗨@rhholt,感谢您的回复!我并不知道“with”声明,我认为这将是我的情况中最好的方法,所以我会放弃这一做法。我被卡住了,无法查询像上面所述的特定设置,这绝对有帮助。谢谢! – Sweaver 2015-03-16 01:38:57

+0

不客气,很高兴我能帮上忙。 – rhholt 2015-03-16 18:53:31