尝试在多个查询上使用 UNION,但由于我的子查询使用 AVG 而不起作用



我试图基本上运行6选择查询(显示两个为了可读性,但它基本上是相同的模式),并使用联合创建一个单一的输出。然而,当我运行查询时,我得到了以下2个错误:

  • Msg.141给变量赋值的SELECT语句不能与数据检索操作结合使用。
  • Msg.10734在包含顶级UNION、INTERSECT或EXCEPT操作符的语句中不允许变量赋值。

我理解并看过类似的问题,但似乎没有任何工作。


我希望输出像这样

Select
'table1' as TableName,
count(*) as RecordCount,
0.75 * AVG(count(*)) over ()
from table1
where @something = specificDate
group by specificDate
union all
Select
'table2',
count(*) as RecordCount,
0.75 * AVG(count(*)) over ()
from table2
where @something = specificDate
group by specificDate;

任何建议或指导将不胜感激!

我不明白为什么这里需要变量。您需要一个specificdate子句来计算所有行的平均值:

PP_3我注意到您的查询似乎在group by ()上过滤。所以你可以按空集分组:CC_4

最新更新