sql - 如何用sql查找销量最高的产品的收益?
问题描述
我有两张桌子:
我需要找到销量最高的产品名称以及从中获得的收益。
我写的代码:
SELECT *
FROM Products
WHERE ProductId = (SELECT ProductId
FROM
(SELECT
ProductId,
SUM(Quantity) AS total_order,
MAX(SUM(Quantity)) OVER () AS maxSm
FROM
Orders
GROUP BY
ProductId)
WHERE
total_order = maxSm)
但是有了这个,我只找到了销量最高的产品名称。你能告诉我,我怎样才能找到这个产品的收益?
解决方案
您需要将派生表的结果连接到您的Products
表中。
如果没有实际的样本数据,我无法测试,但是以下应该是您需要的,或者至少非常接近:
select p.Name, o.total_order, o.total_order * p.Price as TotalValue
from (
select * from (
select ProductId,
Sum(Quantity) as total_order,
Max(Sum(Quantity)) over () as maxSm
from Orders
group byProductId
)t
where total_order = maxSm
)o join Products p on p.ProductId=o.ProductId
推荐阅读
- python - 无法使用请求从网页中获取表格内容
- bash - 如何为所有部分文件名匹配创建符号链接?
- powershell - powershell 和 windows 资源管理器(属性)有不同的计数结果
- python - 如何使用 - 在 Python 中使用切片?
- google-sheets - 我有一个字符串列表,我想为列表中的每个项目调用多行的 INSERTDATA。我怎样才能做到这一点?
- javascript - Javascript Regex:在这种情况下如何避免灾难性的回溯
- html - 当我给附近的段落边距时,为什么我的图像会移动?
- python - 工人的 Heroku Procfile:python
- python - 如何在 python pandas 中读取包含字典的 .csv 文件?
- ios - UIButton 标题标签文本未使用情节提要或以编程方式更改