尝试从查询中添加值之和,但不确定如何让它在此时添加所有值它只是从列表中查找唯一值,但应该添加所有值。
如
第11项的价格是1英镑
第35项的价格是2英镑
我试图加上11和35以及35英镑(1+2+2英镑),得到5英镑的价值
我正在使用的查询显然是不正确的,因为它返回的是3英镑,所以它只是添加附加到唯一项的唯一值
SELECT sum(price) FROM prices where item_id IN(11,35,35)
非常感谢您的帮助
最佳答案
您需要强制表上的笛卡尔连接,可以这样做:
select
sum(yt.price) as TotalPrice
from
yourTable yt
join (
select
11 as ID
from dual
union all
select
35 as ID
from dual
union all
select
35 as ID
from dual
) sel
on yt.ID=sel.ID
您可以创建一个子查询,该子查询具有所需ID的多条记录,并将其连接到要从中提取数据的实际表。
你可以做的另一件事是收回单个项目的价格,并在数组/对象中进行排序,在这里你可以做数学运算,以更详细的方式得到价格。
另一件事,你可以做的非常简单的一个数组(或者你正在存储你的ID,你想计算价格)将是在一个外部查询中做一个可变数量的联合-真的类似于上面所说的,但将看起来非常不同:
select
sum(sel.price)
from
(
select price from yourTable where ID=11
union all
select price from yourTable where ID=35
union all
select price from yourTable where ID=35
) sel
这几乎是一样的,但取决于您拉入查询的其他列,可能更适合。
关于php - 具有重复项的数组中值的总和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23653897/