Sql 符合where条款时的平均值

Sql 符合where条款时的平均值,sql,Sql,我想找到一个符合标准的字段的平均数量。它被嵌入到一个大表中,但我希望这个平均字段在那里,而不是在一个单独的表中 这就是我到目前为止所做的: Select.... Avg( (currbal) where (select * from table where ament2 in ('r1','r2')) From table 您可以将要嵌入AVG语句的所有其他总和放入FROM子句内的表引用中。比如: SELECT AVG(currbal) FRO

我想找到一个符合标准的字段的平均数量。它被嵌入到一个大表中,但我希望这个平均字段在那里,而不是在一个单独的表中

这就是我到目前为止所做的:

Select....
Avg( (currbal) where (select * from table 
                       where ament2 in ('r1','r2'))
From table 

您可以将要嵌入AVG语句的所有其他总和放入FROM子句内的表引用中。比如:

SELECT AVG(currbal)
FROM
(
    SELECT * -- other sums
    FROM table
    WHERE ament2 IN ('r1','r2')
) t

您可以将要嵌入AVG语句的所有其他总和放入FROM子句内的表引用中。比如:

SELECT AVG(currbal)
FROM
(
    SELECT * -- other sums
    FROM table
    WHERE ament2 IN ('r1','r2')
) t

您可以在选择列表中写入完整的子选择:

SELECT ...,
       (SELECT AVG(Currbal) FROM Table WHERE ament2 IN ('r1', 'r2')) AS avg_currbal,
       ...
  FROM ...

这是否能完全满足你的要求取决于很多事情。您可能需要将其转换为相关子查询;假设“ament2”在表中,它目前不是一个相关的子查询。

您可以在选择列表中写入完整的子选择:

SELECT ...,
       (SELECT AVG(Currbal) FROM Table WHERE ament2 IN ('r1', 'r2')) AS avg_currbal,
       ...
  FROM ...

这是否能完全满足你的要求取决于很多事情。您可能需要将其转换为相关子查询;假设“ament2”在表中,它目前不是一个相关的子查询。

如果您只想在以下情况下平均查询用例的一个子集。。。然后,将非匹配行中的值替换为null作为空值的操作将被avg忽略

Select id,
       sum(something) SomethingSummed,
       avg(case when ament2 in ('r1','r2') then currbal end) CurrbalAveragedForR1R2
  From [table]
 group by id

如果您只想在以下情况下平均查询用例的一个子集。。。然后,将非匹配行中的值替换为null作为空值的操作将被avg忽略

Select id,
       sum(something) SomethingSummed,
       avg(case when ament2 in ('r1','r2') then currbal end) CurrbalAveragedForR1R2
  From [table]
 group by id

从“r1”和“r2”中的表格where 2中选择Avgcurrbal有什么错?因为它在一个表格中,与其他总和不需要此where条件,所以它需要嵌入到avg语句中。我认为您需要显示更多这些点代表的内容。一个问题是“哪一组行是要求平均值的平均值”。从“r1”和“r2”中的ament2表中选择Avgcurrbal有什么错?因为它在一个表中,而其他总和不需要这个where标准,所以它需要嵌入到avg语句中。我认为您需要更多地显示这些点所代表的内容。一个问题是“哪一组行是要求平均值的平均值”。我想,如果基本查询有WHERE子句,这将不起作用,除非您打算将该子句也带到子查询中。从生成答案的意义上说,这将“起作用”。它是否产生所需答案取决于所需答案是什么。如前所述,假设ament2是表中的一列,它在每一行输出中产生相同的答案,并进行一次评估;该值是当前余额Currbal的总平均值,其中amend2在“r1”、“r2”中。这可能不是必需的——因此我提到了相关的子查询,等等。我认为我们还没有足够的信息来判断真正需要什么。要么是这样,要么是我还没有喝足够的咖啡。我想当基本查询包含WHERE子句时,这将不起作用,除非您打算将该子句也包含在子查询中。从生成答案的意义上说,这将“起作用”。它是否产生所需答案取决于所需答案是什么。如前所述,假设ament2是表中的一列,它在每一行输出中产生相同的答案,并进行一次评估;该值是当前余额Currbal的总平均值,其中amend2在“r1”、“r2”中。这可能不是必需的——因此我提到了相关的子查询,等等。我认为我们还没有足够的信息来判断真正需要什么。要么这样,要么我还没有喝够咖啡。