【问题标题】:MySQL Group by Sum TotalMySQL 按总和分组
【发布时间】:2016-12-28 20:20:12
【问题描述】:

尝试按总和值分组时出错。

select sum(price  + adjustments) as adjusted_price from items group by adjusted_price

这不可能吗?

示例:我想抓取调整后价格相同的商品。示例 ($1.00 - .50 = .50) --- ($2.00 - 1.50 = .50),我想抓取组合在一起的 0.50 的项目。

谢谢

【问题讨论】:

  • 你想做什么?这没有意义
  • 没有。它不是。解释你想做什么。示例数据和预期输出可能会有所帮助
  • group by 对我来说没有任何意义。
  • 我想抓取调整后价格相同的商品。示例 ($1.00 - .50 = .50) --- ($2.00 - 1.50 = .50),我想抓取组合在一起的 0.50 的项目。
  • 请提供示例数据和预期输出

标签: mysql database


【解决方案1】:

也许您正在寻找总计adjusted_price?如果是这样,您不需要groupby

select
  sum(adjusted_price)
from 
  (select price+adjustments as adjusted_price from items) tt

编辑:

听起来您想按adjusted_price 分组。尝试以下也将返回频率计数:

select
  adjusted_price, count(1)
from 
  (select price+adjustments as adjusted_price from items) tt
group by adjusted_price

或者以下应该只为您提供唯一的 adjusted_price 值:

select distinct
  adjusted_price
from 
  (select price+adjustments as adjusted_price from items) tt

【讨论】:

    【解决方案2】:

    这不可能吗?

    忘记可能性,而且看起来是错误的和不正确的。为什么你试图group by SUM() 结果顺便说一句?您应该group by 表中的任何其他列。如下所示,但除非查看您的表架构和示例数据,否则无法确定。

    select sum(price)  + sum(adjustments) as adjusted_price 
    from items 
    group by some_column_name;
    

    【讨论】:

    • 我编辑了我的问题以反映我在寻找什么。 - 谢谢
    • @BrianG,是的,看到了,没有任何区别。如果需要进一步帮助,请发布您的表架构以及示例数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-12
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 2015-08-03
    相关资源
    最近更新 更多