IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Différence de syntaxe, (KEEP, FIRST_VALUE)


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Par défaut Différence de syntaxe, (KEEP, FIRST_VALUE)
    Bonjour,

    J'utilise depuis quelque temps les fonctions analytiques et je viens de découvrir la fonction KEEP.
    J'ai un peu de mal à voir l'interêt par rapport à ce que j'utilisais avant.

    Voici un exemple :

    Sans KEEP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT champ1, champ2, quantité, 
               MIN(quantite) OVER(PARTITION BY champ2) q_min,
               FIRST_VALUE(champ1) OVER(PARTITION BY champ2 ORDER BY quantite) c_min
    FROM table
    WHERE conditions
    Avec KEEP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT champ1, champ2, quantité, 
               MIN(quantite) OVER(PARTITION BY champ2) q_min,
               MIN(champ1) KEEP(DENSE_RANK FIRST ORDER BY quantite) OVER(PARTITION BY champ2) c_min
    FROM table
    WHERE conditions
    Je trouve les mêmes résultats.
    Quel est la meilleur syntaxe si il y en a une et pourquoi ?
    Et sinon il y a-t-il une utilisation de KEEP qui m'échappe ?

    Merci d'avance.

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    KEEP n'est pas une fonction, c'est FIRST qui en est.

  3. #3
    Membre Expert Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Par défaut
    Merci pour la précision, mais la question reste là, il y a-t-il une différence notable entre les deux syntaxes proposées ?

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    FIRST_VALUE is an analytic function. It returns the first value in an ordered set of values.
    FIRST and LAST are very similar functions. Both are aggregate and analytic functions that operate on a set of values from a set of rows that rank as the FIRST or LAST with respect to a given sorting specification. If only one row ranks as FIRST or LAST, the aggregate operates on the set with only one element.

  5. #5
    Membre Expert Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Par défaut
    OK compris, j'étais parti sur une mauvaise piste.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. vba access 97, XP, différence de syntaxe
    Par jaffael dans le forum VBA Access
    Réponses: 5
    Dernier message: 27/04/2009, 14h09
  2. Différence de syntaxe dans la déclaration struct
    Par GreatDeveloperOnizuka dans le forum C
    Réponses: 6
    Dernier message: 25/01/2009, 12h28
  3. [Prototype] Usage de prototype pour éviter les différences de syntaxe !
    Par Dermiste dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 01/09/2008, 09h11
  4. différences de syntaxe entre mysql 4 et 5
    Par bigsister dans le forum Requêtes
    Réponses: 1
    Dernier message: 23/10/2007, 20h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo