gpt4 book ai didi

mysql - SQL - 如何在单行计算后对数据进行分组

转载 作者:可可西里 更新时间:2023-11-01 08:11:27 26 4
gpt4 key购买 nike

我对这个问题着迷。这是我的完整 sqlite 查询的精简版本:

SELECT OrderID,
UnitPrice,
Quantity,
Discount
FROM Order Details;

返回这个:

OrderID  UnitPrice  Quantity  Discount
10248 14.0 12 0.00
10248 9.8 10 0.00
10248 34.8 5 0.00
10249 18.6 9 0.00
10249 42.4 40 0.00
10250 7.7 10 0.00
10250 42.4 35 0.15
10250 16.8 15 0.15
10251 16.8 6 0.05
10251 15.6 15 0.05

我想返回一个名为total price 的新列。这将是 UnitPrice 乘以 Quantity 减去相应的百分比 Discount。然而,复杂性出现了,因为新列应按 OrderID 分组,以表示总订单价格减去个别折扣百分比。

几个小时以来,我一直在追逐 SUM 聚合和 GROUP BY。将 UnitPrices 和 Quantities 相加很好,但由于折扣适用于不同的值,因此几乎需要先计算折扣。顺便说一句,折扣不需要单独应用于每件商品。

最佳答案

这是假设您使用 MySQL。 MS SQL 服务器可能需要略有不同,但两者的想法是相同的。

为了更好地理解这一点,将其分为两个阶段。

首先统计订单项价格:

SELECT OrderID,
UnitPrice,
Quantity,
Discount,
UnitPrice*Quantity*(1-Discount) total
FROM OrderDetails;

然后应用 GROUP BYSUM(),因此您的最终查询将是:

SELECT OrderID,
SUM(UnitPrice*Quantity*(1-Discount)) total
FROM OrderDetails
GROUP BY OrderID;

关于mysql - SQL - 如何在单行计算后对数据进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32529678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com