gpt4 book ai didi

sql - 当查询包含 GROUP BY 子句时 ORACLE 中的前 10 行

转载 作者:行者123 更新时间:2023-12-05 09:22:21 26 4
gpt4 key购买 nike

如何从以下查询中选择前 10 行?

select dim_product.PRODUCT_NAME, sum(units_sold * (revenue - cost)) 
from FT_SALES
INNER JOIN dim_product
ON ft_sales.prod_dwh_id = dim_product.product_dwh_id
group by dim_product.PRODUCT_NAME
order by 2 desc;

--- 我尝试了使用 ROWNUM 的建议。

没有 ROWNUM 我得到以下结果

超软散装 - 2 升 48223,5
超软 - 1 升 38842,16
super 柔软 - 500ml 32879,29
Detafast 去污剂 - 100ml 29382
Detafast 去污剂 - 800ml 27336
Detafast 去污剂 - 200ml 24516
纯柔洗涤剂 - 500ml 21147
纯柔洗涤剂 - 250ml 20675,6
Pure Soft Detergent - 100ml - extra 19693,5
纯柔洗涤剂 - 200ml 17563,74
super 柔软 - 250ml 17430
超软 - 产品 sample -2647,8

当像那样添加 ROWNUM 时:

select dim_product.PRODUCT_NAME, sum(units_sold * (revenue - cost)) 
from FT_SALES
INNER JOIN dim_product
ON ft_sales.prod_dwh_id = dim_product.product_dwh_id
where ROWNUM<=10
group by dim_product.PRODUCT_NAME
order by 2 desc ;

我得到了结果:

super 柔软 - 500ml 670,08
Pure Soft Detergent - 100ml - extra 597
纯柔洗涤剂 - 200ml 338,3
Detafast 去污剂 - 100ml 246
Detafast 去污剂 - 200ml 213
超软 - 1 升 179,64

所以这不是我的解决方案。

最佳答案

在Oracle中使用rownum进行选择时,需要使用子查询:

select p.*
from (select dim_product.PRODUCT_NAME, sum(units_sold * (revenue - cost))
from FT_SALES INNER JOIN
dim_product
ON ft_sales.prod_dwh_id = dim_product.product_dwh_id
group by dim_product.PRODUCT_NAME
order by 2 desc
) p
where rownum <= 10

关于sql - 当查询包含 GROUP BY 子句时 ORACLE 中的前 10 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27523116/

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