首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法在SQL联接上显示联接键

无法在SQL联接上显示联接键
EN

Stack Overflow用户
提问于 2021-02-23 17:44:20
回答 1查看 23关注 0票数 1

我有两个标准的表-我想要显示最畅销的产品(按销售)在每个组

代码语言:javascript
代码运行次数:0
运行
复制
Product_Info_Table -> 
Product_Id, Product_Group, Product_Name
P1  BOOK    3 Musketeers
P10 SHOES   NIKE Fly
P11 SHOES   NIKE Thunder
P12 SHOES   ADIDAS 10
P13 SHOES   ADIDAS 09
P14 BOOK    Harry Potter 1
P15 BOOK    Harry Potter 2
P2  BOOK    HARRY POTTER 7
P3  ELECTRONICS NIKON 5600i
P4  ELECTRONICS CANNON 4d
P5  ELECTRONICS CANNON 5d
P6  VIDEO DVD   LOR 1
P7  VIDEO DVD   LOR 2
P8  VIDEO DVD   HP 1
P9  VIDEO DVD   HP 2

和Product_Sales_Table

代码语言:javascript
代码运行次数:0
运行
复制
Product_ID SALES_AMT
P1  10
P10 8
P11 45
P2  5
P3  5
P4  25
P5  15
P6  35
P7  5
P8  100
P9  30

我做了以下工作:

代码语言:javascript
代码运行次数:0
运行
复制
SELECT product_info_table.PRODUCT_GROUP, 
product_info_table.PRODUCT_ID,
MAX(IFNULL(sales_fact_table.SALES_AMT,0))

FROM product_info_table
INNER JOIN product_sales_table 
ON product_sales_table.PRODUCT_ID = product_info_table.PRODUCT_ID

GROUP BY product_info_table.PRODUCT_GROUP

结果:

代码语言:javascript
代码运行次数:0
运行
复制
Product_Group Id    Max_Sales
BOOK          P1    10
SHOES         P10   45
ELECTRONICS   P3    25
VIDEO DVD     P6    100

错误:奇怪的是,这个结果正确地识别了每个类别中的最大销售产品,但是,Product_Id没有正确显示,默认情况下,每个类别中的第一个product_id会被挑选出来。

为了显示正确的product_id,我做错了什么?

Desired_Result

代码语言:javascript
代码运行次数:0
运行
复制
Product_Group Id    Max_Sales
BOOK          P1    10
SHOES         P11   45
ELECTRONICS   P4    25
VIDEO DVD     P8    100
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-23 20:31:51

使用窗口函数而不是聚合:

代码语言:javascript
代码运行次数:0
运行
复制
SELECT p.*
FROM (SELECT pit.PRODUCT_GROUP, pit.PRODUCT_ID, pst.SALES_AMT,
             ROW_NUMBER() OVER (PARTITION BY pit.PRODUCT_GROUP ORDER BY pst.SALES_AMT DESC) as seqnum
      FROM product_info_table pit JOIN
           product_sales_table pst
           ON pst.PRODUCT_ID = pit.PRODUCT_ID
     ) p
WHERE seqnum = 1;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66330675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档