gpt4 book ai didi

Oracle Analytic函数-如何重用PARTITION BY子句?

转载 作者:行者123 更新时间:2023-12-04 05:26:41 25 4
gpt4 key购买 nike

我已经用Oracle编写了一个复杂的SQL查询,其中我想在同一个分区上使用两个分析函数。

让我们很简单,但不要太多:

SELECT col1,
MAX(col2) OVER(PARTITION BY col3, col4, col5, col6,
CASE WHEN col7 LIKE 'foo'
THEN SUBSTR(col7,1,5)
ELSE col7
END
ORDER BY col5 ASC, col6 DESC),
MIN(col2) OVER(PARTITION BY col3, col4, col5, col6,
CASE WHEN col7 LIKE 'foo'
THEN SUBSTR(col7,1,5)
ELSE col7
END
ORDER BY col5 ASC, col6 DESC)
FROM my_table;

有没有更优雅的语法可以分解 PARTITION BY子句?

谢谢你。

最佳答案

如果您像这样引用标准的WINDOW子句:

SELECT col1,
MAX(col2) OVER(w),
MIN(col2) OVER(w)
FROM my_table
WINDOW w AS (PARTITION BY col3, col4, col5, col6,
CASE WHEN col7 LIKE 'foo'
THEN SUBSTR(col7,1,5)
ELSE col7
END
ORDER BY col5 ASC, col6 DESC);

那么我相信答案是 ,Oracle不支持此功能(已通过11gR2选中)。

关于Oracle Analytic函数-如何重用PARTITION BY子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5473038/

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