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 :

Question pour une Requête Analytic


Sujet :

SQL Oracle

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2018
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Question pour une Requête Analytic
    Bonjour,

    Je dois faire une requête qui dois retourner

    Les rangées qui ont le même id mais par tranche de 30 jours


    key id date selectionné
    1 123 2018-06-01 oui
    2 123 2018-05-30 non
    3 123 2018-05-01 oui
    4 234 2018-06-01 oui
    5 234 2018-06-01 non


    Avec cette requête j'élimine ceux qui ont le même id et la même date (key 5)

    select key, id, date
    row_number() over(partition by ID, DATE order by KEY desc) row_num
    from TBL_A
    where row_num = 1

    Si quelqu'un a une idée pour éliminer ceux qui ont un interval de moins de 30 jours

    Merci à l'avance
    Pierre

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 038
    Points : 9 347
    Points
    9 347
    Par défaut
    Si j'ai bien compris, tu veux afficher les lignes L1 pour lesquelles il n'existe pas une ligne L2, qui vérifierait L2.DATE>=L1.DATE-30 et L2.DATE<L1.DATE

    Et donc, en traduisant mot-à-mot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select * from matable l1
    where not exists 
     ( select * from matable l2 
        where l2.MADate >= l1.maDate-30 and l2.MaDate < l1.MaDate)
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 934
    Points : 4 347
    Points
    4 347
    Par défaut
    Cela dépend comment sont calculés vos intervalles de 30 jours :
    sont-ils absolus (les mêmes pour tous les IDs à partir d'une date fixe de début ou de fin)
    ou
    relatifs à chaque ID en commençant par la max(date) ou la min(date) de chaque ID ?
    ou
    relatifs par rapport à la max(date) ou la min(date) de toutes les données ?


    En intervalles relatifs à la dernière date pour chaque ID, cela pourrait être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    with latest_per_id(id, d) as
    (
      select id, max(d) from t_data group by id
    )
    select key, id, to_char(d,'dd-mm-yyyy') as "date" from (
    select d.key, d.id, d.d,
      row_number() over(
        partition by d.id,  trunc((l.d - d.d) / 30) order by key desc
      ) rn
      from t_data d
      join latest_per_id l on l.id = d.id
    )
    where rn = 1
    order by d desc;

Discussions similaires

  1. Question pour une requête sur plusieurs tables/objets
    Par pontus21 dans le forum Hibernate
    Réponses: 54
    Dernier message: 01/06/2009, 19h37
  2. J'ai besoin de votre aide pour une requête
    Par ovdz dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/05/2005, 12h42
  3. Demande d'aide pour une requête
    Par arkzor dans le forum Requêtes
    Réponses: 3
    Dernier message: 28/12/2004, 03h40
  4. Besoin d'aide pour une Requête SQL ...
    Par Kokito dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/07/2004, 12h56
  5. besoin d'aide pour une requête
    Par Damien69 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 31/03/2004, 16h38

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