SELECT行具有相等的列(c1)值并添加添加另一列(c2)值。对列c1的所有不同列值执行相同操作

时间:2014-07-03 15:54:51

标签: mysql sql

我需要为MySQL数据库编写一个SQL查询,它根据必要条件为我提供数据

我有一张像这样的结构的表

id: orderId
amount : itemAmount
rate : itemRate
time : orderTime

现在我必须选择具有相同费率的所有行,然后必须添加具有相同费率的所有项目。这应适用于例如每种费率的手段。

  

ID为1的行的价格为20美元,含2件商品,第3行的价格为20美元,含5件商品

     

ID为2的行的价格为40美元,含4件商品,第4行的商品价格为40美元,含7件商品

我应该得到结果

rate: $20 totalItem : 7
rate: $40 totalItem : 11

2 个答案:

答案 0 :(得分:1)

正如我在评论中所述,我不知道您的专栏名称是什么,我将在我的回答中假设他们被称为idamountratetime

SELECT rate, COUNT(*) AS totalItems -- Select the rate, and count everything
FROM theRelevantTable               -- Use the rows in this table
GROUP BY rate                       -- But do the selection per group.

更清楚的英语:

按照rate对相关表格中的行进行分组,然后,对于每个组,为我提供费率并计算该组中的行数。

我希望这就是你的意思。我不完全理解你的问题。

答案 1 :(得分:1)

也许这个? SQL FIDDLE

一起玩

假设:您有一个名为orders的表,其中包含列率,金额,时间,ID。

金额存储一定数量的项目,费率是它们的价格,时间是它发生的时间。

SELECT 
    rate, 
    SUM(amount) 
FROM orders
GROUP BY rate