尝试从查询中添加值之和,但不确定如何让它在此时添加所有值它只是从列表中查找唯一值,但应该添加所有值。

第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/

10-10 06:52