我使用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
子句?
谢谢。
MAX
和MIN
,并且col5
和col6
都在partition
和order by
中,每个列的order by
子句似乎是多余的。 - Mike Meyers