sql - 如何在单个语句中获取 Northwind 数据库中 Order Details 表中每个产品的总销售额?

标签 sql sql-server select sum

如何在单个语句中获取 Northwind 数据库中 Order Details 表中每个产品的总销售额?

我知道怎么做:

select productid,  UnitPrice * (1 - Discount) * sum(Quantity) 
  from [Order Details]
    group by ProductID,UnitPrice, Discount

我为每个 productid 获取多行,然后我可以运行另一个查询为每个 productid 获取一个总和。 请注意,同一产品 ID 的折扣可能不同

我想在一条 SQL 语句中完成所有操作。怎么办?

最佳答案

您可以只提取您的 sum 函数来分别对每一行的价格求和,而不仅仅是对数量求和(这在数学上应该没问题,因为乘法大于加法):

SELECT   productid,  SUM(UnitPrice * (1 - Discount) * Quantity)
FROM     [Order Details]
GROUP BY ProductID

关于sql - 如何在单个语句中获取 Northwind 数据库中 Order Details 表中每个产品的总销售额?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23730503/

相关文章:

mysql - 是否建议添加单独的状态字段来检查完成情况,或者完成者 ID 和日期是否足够?

php - URL 中的 MySQL 字段

c# - 无法在 Entity Framework Core 6 上插入具有导航属性的数据

c# - IQueryable 不包含 SingleOrDefault 的定义

sql - 谜题 : Spreading numbers evenly in groups

sql - 无法将变量值传递给 ssis 中的存储过程

sql-server - 为什么在存储数据时不总是使用 nvarchar 而不是 varchar?

javascript - 如何清除选择框旧数据并在选择 Javascript 上填充新数据?

javascript - 滚动到 html 输入的插入符位置

sql - mysql - 创建行与列性能