结合两个查询功能和平均每个

问题描述:

我有一个查询,执行2列(col1和col2)的计算,然后根据给定的标准(时间= week1和week2)和组的平均结果他们基于另一个标准(ID)。结合两个查询功能和平均每个

它看起来像:

SELECT subquery1.[ID], Avg (Param1) as Avg_Param1 
FROM 
(
SELECT [Table1].[ID], [Table1].Time, [col1]/40)/[col2] AS Param1 
FROM Table1 
) AS subquery1 
WHERE (subQuery1.Time = 'week 1' or subquery1.Time = 'Week 2') 
Group By subquery1.[ID] 
; 

现在我想在同一个查询中创建一个名为Avg_param2列的分别是标准就是让说“五周”和“6周”。

我可以在第二个查询中做到这一点,然后加入他们,但我怎么能一次性做到这一点?

+0

通过使用IIF()函数,以适当的行发送到你想要的列。发送NULL以使其忽略平均计算中的行。 – Rabbit

试试这个:

SELECT [Table1].[ID], 
     AVG(IIF([Table1].Time IN ('week 1','Week 2') , [col1]/40/[col2] , NULL)) AS Avg_Param1 , 
     AVG(IIF([Table1].Time IN ('week 5','Week 6') , [col1]/40/[col2] , NULL)) AS Avg_Param2 
FROM [Table1] 
Group By [Table1].[ID] 
+0

不得不在NULL后添加a),但它的工作!非常感谢 ! – JPC

+0

@ user3638420感谢那:) –