sql - 在 where 子句和不同的列条件中使用聚合函数

标签 sql function average

select PO_Order_Qty, Avg([PO_Order_Qty])as totalAverage 
FROM [FirstStrike_Retail].[custom].[Whse_Pricing_QR]    
where item_code ='111' and PO_order_qty <(Avg([PO_Order_Qty])*2)
group by PO_Order_Qty

我在 MS Sql 中使用上述 sql 来获取特定项目代码订单数量的平均值。我只期待一个返回值。

如果任何数量超过平均值的两倍,我需要消除。

谢谢
Xplr

最佳答案

在检查聚合函数(MAX、MIN、SUM、AVG 等)时,您应该使用 HAVING 子句。我不想只是给你答案,而是尝试这样的事情。

select PO_Order_Qty, Avg([PO_Order_Qty])as totalAverage 
FROM [FirstStrike_Retail].[custom].[Whse_Pricing_QR]    
where item_code ='111' 
group by PO_Order_Qty
HAVING PO_order_qty <(Avg([PO_Order_Qty])*2)

编辑:根据你的评论试试这个……像这样
    select * 
    FROM [FirstStrike_Retail].[custom].[Whse_Pricing_QR]    
    where item_code ='111' 
      and PO_Order_Qty < 
          (select Avg([PO_Order_Qty])as totalAverage 
          FROM [FirstStrike_Retail].[custom].[Whse_Pricing_QR]) * 2

关于sql - 在 where 子句和不同的列条件中使用聚合函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18362145/

相关文章:

php - $this->value = $dbarray 不返回任何内容

function - Scala 函数获取所有大小为 k 的排序子集

mysql - 选择一个有重复的记录

mysql - 未知列错误,但我在 phpmyadmin 中有此列。但其他工具可以执行而不会出错

c++ - 为什么 std::binary_function<...> 没有 operator() 方法?

mysql - 在返回不正确值的 SELECT 子句中使用 INNER JOIN

c - 运行时的平均值不精确

language-agnostic - 如何以一般方式将平均值的计算减少到子集?

sql - Postgres 查询优化

mysql - 帮助 mysql 触发器(插入前检查值)