gpt4 book ai didi

sql - 将 row_number() 拆分为多列分区

转载 作者:行者123 更新时间:2023-12-01 03:54:00 25 4
gpt4 key购买 nike

我有一个在分区上使用 row_number() 的查询。
当结果出来时,它看起来像

Product         Row_Number         Price
A 1 25
A 2 20
A 3 15
B 1 100
B 2 10
B 3 2

我想让结果显示在像
Product      Row1         Row2        Row3      price1       price2       price3
A 1 2 3 25 20 15
B 1 2 3 100 10 2

我应该使用 rank() 之类的东西吗???

我正在使用 Teradata

最佳答案

您可以再添加两个窗口函数来获得第二和第三高的价格,这应该在与您当前的 ROW_NUMBER 相同的 STAT-step 中运行,因此没有额外的开销:

select
product,
price as Price1,
min(price)
over (partition by product
order by price desc
rows between 1 following and 1 following) as Price2,
min(price)
over (partition by product
order by price desc
rows between 2 following and 2 following) as Price3
from tab
qualify
row_number()
over (partition by product
order by price desc) = 1

关于sql - 将 row_number() 拆分为多列分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19032793/

25 4 0
文章推荐: apache - 带有 Apache HTTPD 的负载均衡器
文章推荐: jquery - 在 IE 中隐藏页面内容,直到脚本完全加载到 jquery 中
文章推荐: jquery 禁止点击