sql - 选择最昂贵产品销量最高的公司
问题描述
我有一张不同公司的许多产品的所有销售记录表。每条记录都包括售出的产品、售出的价格、售出公司的名称(请注意,可以以任何可能的价格售出相同的产品)。示例表结构:
id | product | sales_price | company
---+---------+-------------+---------
1 | prod122 | 123376456 | abcSales
2 | prod123 | 345676433 | xyzSales
3 | prod122 | 346876543 | xyzSales
4 | prod124 | 124688533 | wpwSales
我试图找出哪家公司的最昂贵产品的销售额最高。换句话说,我想写一个查询,找到平均价格最高的产品,调用它PRODUCTX
,然后找到销售额最高的公司PRODUCTX
,调用它COMPANYX
。
结果应该是一列显示一行COMPANYX
,另一列显示 PRODUCTX 的销售数量。
非常感谢您的帮助。
解决方案
你可以试试这个:
WITH DATAA (id,product,sales_price,company)
AS
(
SELECT 1, 'prod122', 123376456, 'abcSales' FROM DUAL UNION ALL
SELECT 2, 'prod123', 345676433, 'xyzSales' FROM DUAL UNION ALL
SELECT 3, 'prod122', 346876543, 'xyzSales' FROM DUAL UNION ALL
SELECT 4, 'prod124', 124688533, 'wpwSales' FROM DUAL
)
SELECT
D.COMPANY,
D.PRODUCT,
T.AVG_PRICE,
COUNT(1) NO_OF_PRODUCT
FROM
DATAA D
JOIN (
SELECT
AVG(SALES_PRICE) AVG_PRICE,
PRODUCT
FROM
DATAA
GROUP BY
PRODUCT
ORDER BY
AVG_PRICE DESC
FETCH FIRST ROWS ONLY
) T ON ( T.PRODUCT = D.PRODUCT )
GROUP BY
D.COMPANY,
D.PRODUCT,
T.AVG_PRICE
ORDER BY
NO_OF_PRODUCT DESC
FETCH FIRST ROWS ONLY;
输出
推荐阅读
- python - pandas df.info() 作为剪贴板的数据框。如何?
- php - 提交表单但用户的输入仍然存在
- kubernetes - pod 内的 Kubernetes 日志位置
- c - 编译或构建的 gcc g 选项?
- angular - Angular 路由器 cookie 路径
- r - 使用 dplyr 使用 mutate 创建一个新变量,从而将新值应用于第三个变量的每个相关值
- python - 如果 a 在 my_friends.items()
- javascript - React 组件不会在 url 更改时使用 react 路由器重新渲染
- python - 如何让 Scrapy 蜘蛛与多个管道一起运行?
- c++ - setprecision 和字符串命名空间