Mysql 若同一产品在我的库存中具有相同的价格,如何编写查询以显示数量之和?

Mysql 若同一产品在我的库存中具有相同的价格,如何编写查询以显示数量之和?,mysql,sql,Mysql,Sql,我的桌子看起来像 Product Price Qty A 100 10 B 200 30 A 100 15 A 150 20 我的表中的产品A重复了价格100的两倍。如果产品的价格值相同,则应添加数量。我的结果如下 Product Price Qty A

我的桌子看起来像

Product       Price        Qty
A              100          10
B              200          30
A              100          15
A              150          20
我的表中的产品A重复了价格100的两倍。如果产品的价格值相同,则应添加数量。我的结果如下

Product       Price         Qty
A              100           25
A              150           20
B              200           30
sum()
函数用于按产品和价格分组

    select t.product, t.price,sum(t.qty) as Qty from your_table t
    group by t.product,t.price

只需使用
按产品分组,价格
总和
聚合为:

select product, price, sum(qty)
  from tab
group by product, price
order by product, price;

orderby
这里是多余的,因为
groupby
无论如何都会隐式地这样做(在问题中也没有明确要求,所以有点分散回答的注意力)@eggyal很高兴了解这个属性,谢谢
order by
是正确排序所必需的,即使查询有
group by
for
oracle
db作为示例,但我刚才也尝试了
mysql
隐式执行您提到的操作。@eggyal不,不会。手册在这一点上非常具体。@eggyal,嗯?5.7下的注释说:
notegroupby默认隐式排序(即,在groupby列没有ASC或DESC指示符的情况下)。但是,不推荐使用隐式GROUP BY排序(即,在没有ASC或DESC指示符的情况下进行排序)或GROUP BY的显式排序(即,对GROUP BY列使用显式ASC或DESC指示符)。要生成给定的排序顺序,请提供order BY子句。
在DBMS中,如果没有明确的order BY,则无法保证排序结果集。如果它当前返回“正确”的顺序,并且在下一个版本中对内部实现进行了更改,那么您不能声称这是一个bug(这种情况经常发生),工作正常,谢谢。