Oracle des fonctions Analytiques - Comment réutiliser une PARTITION PAR la clause?

J'ai écrit un complexe de requête SQL avec Oracle dans lequel je veux utiliser deux analytique de la fonction au cours de la même partition.

Soyons assez simple mais pas trop:

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;

Est-il plus élégant de la syntaxe à l'affacturage les PARTITION BY clause?

Merci.

Considérant que les fonctions que vous utilisez sont MAX et MIN et aussi col5 et col6 sont dans le partition et la order by, le order by clause pour chaque colonne semble être redondant.
Vous avez raison, mais ceci a été conçu comme un simple exemple, il pourrait être LAST_VALUE ou de tout autre analytique.
double possible de l'Application de Plusieurs Fonctions de la Fenêtre Sur la Même Partition. Ce double n'a pas été facile à trouver.

OriginalL'auteur Benoit | 2011-03-29