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 :

Requête avec fonction MAX


Sujet :

SQL Oracle

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Resp informatique
    Inscrit en
    Décembre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Resp informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1
    Points : 0
    Points
    0
    Par défaut Requête avec fonction MAX
    Bonjour,

    Une question de débutant Oracle à vous les confirmés, dans la table suivante et dont les enregistrements sont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    NOM DATE MONTANT
    952r010001 27.07.2007 0.0017
    952r010001 25.09.2006 0.002
    952r010001 23.04.2005 0.005
    952r010002 21.07.2009 0.0015
    Je veux, pour ces données, ne ressortir que les lignes par nom à la date la plus récente.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      SELECT MAX(DATE), NOM, MONTANT
        FROM MA_TABLE
    GROUP BY NOM, MONTANT
    Avec ma requête qui ne fonctionne pas, j'aimerais obtenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    NOM DATE MONTANT
    952r010001 27.07.2007 0.0017
    952r010002 21.07.2009 0.0015
    Qui me corrige s'il-vous-plaît ?

    Merci...

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Il y a plein de solutions, ROW_NUMBER, jointure max, KEEP FIRST, je vous laisse un peu chercher sur le forum.

  3. #3
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2006
    Messages : 142
    Points : 130
    Points
    130
    Par défaut
    Bonjour,

    Tu peux utiliser les fonctions analytiques :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select NOM, MONTANT, DATE
    from
    (
      select  NOM, MONTANT, DATE, max(DATE) over (partition by NOM) max_date
      from MA_TABLE
    )
    where DATE=max_date
    Cdlt.
    La différence entre la théorie et la pratique, c'est qu'en théorie il n'y a pas de différence entre la théorie et la pratique. En pratique, si.

Discussions similaires

  1. Une requête avec un Max sur 2 champs
    Par Bils dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/09/2007, 14h04
  2. requête avec fonction logarithmique
    Par nefertari dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 25/07/2007, 14h39
  3. Requête avec fonction Sum
    Par freud dans le forum Bases de données
    Réponses: 3
    Dernier message: 12/02/2007, 13h32
  4. Problème de requête avec WHERE MAX()
    Par seb92500 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 24/01/2007, 12h27
  5. requête avec fonction week()
    Par Sebastien_INR59 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 27/06/2006, 18h05

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