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

Oracle Discussion :

recherche de valeur dans une liste lag lead


Sujet :

Oracle

  1. #1
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut recherche de valeur dans une liste lag lead
    Bonjour la liste,

    voici ce qui ma tracasse j'aimerais
    faire une operation du type prix_t1 -prix_t2 sur une suite de valeur

    et j'ai pensé à lag et lead
    mais un probleme a la fin et au debut car les lignes sont vides
    comment faire pour remplir ces lignes avec la derniere valeur

    ce que je veux obtenir

    TIME|PRICE|BEFORE|AFTER
    30/01/2008 08:00:00|49.52|49.52|49.53
    30/01/2008 08:00:00|49.53|49.52|49.55
    30/01/2008 08:00:00|49.55|49.53|49.56
    30/01/2008 08:00:00|49.56|49.55|49.57
    30/01/2008 08:00:00|49.57|49.56|49.6
    30/01/2008 08:00:00|49.6|49.57|49.62
    30/01/2008 08:00:00|49.62|49.6|49.7
    30/01/2008 08:00:00|49.7|49.62|49.72
    30/01/2008 08:00:00|49.72|49.7|49.73
    30/01/2008 08:00:00|49.73|49.72|49.75
    30/01/2008 08:00:00|49.75|49.73|49.78
    30/01/2008 08:00:00|49.78|49.75|49.8
    30/01/2008 08:00:00|49.8|49.78|49.81
    30/01/2008 08:00:00|49.81|49.8|49.83
    30/01/2008 08:00:00|49.83|49.83|49.83

    voila ce que j'objtiens

    TIME|PRICE|BEFORE|AFTER
    30/01/2008 08:00:00|49.52|49.52|49.53
    30/01/2008 08:00:00|49.53|49.52|49.55
    30/01/2008 08:00:00|49.55|49.53|49.56
    30/01/2008 08:00:00|49.56|49.55|49.57
    30/01/2008 08:00:00|49.57|49.56|49.6
    30/01/2008 08:00:00|49.6|49.57|49.62
    30/01/2008 08:00:00|49.62|49.6|49.7
    30/01/2008 08:00:00|49.7|49.62|49.72
    30/01/2008 08:00:00|49.72|49.7|49.73
    30/01/2008 08:00:00|49.73|49.72|49.75
    30/01/2008 08:00:00|49.75|49.73|49.78
    30/01/2008 08:00:00|49.78|49.75|49.8
    30/01/2008 08:00:00|49.8|49.78|49.81
    30/01/2008 08:00:00|49.81|49.8|49.83
    30/01/2008 08:00:00|49.83|49.81|49.83

    ie la derniere ligne 49.81 a remplacer par 49.83

    la requete
    select time ,price, lag (price) over (partition by time order by price) before ,
    lead (price) over (partition by time order by price) after
    from ( select distinct trunc(server_time, 'hh24') + (trunc(to_char(server_time,'mi')))/24/60 time ,id_stock,price from MY_TABLE
    where id_stock='BLA BLA '
    and server_time < to_timestamp('30012008:09:03:00','DDMMYYYY:HH24:MI:SS'))
    group by time,price ,id_stock
    order by time,price;

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Points : 605
    Points
    605
    Par défaut
    peut-être n'ai-je rien compris , mais 49.81 est bien le price "before" ? non ?

Discussions similaires

  1. [XL-2007] Recherche si valeur dans une liste
    Par Ghuron dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 08/12/2014, 16h03
  2. Réponses: 22
    Dernier message: 13/09/2013, 14h20
  3. Réponses: 11
    Dernier message: 07/09/2010, 22h49
  4. Réponses: 2
    Dernier message: 22/04/2008, 16h21
  5. Ajouter un valeur dans une liste modifiable
    Par ancylia dans le forum Access
    Réponses: 1
    Dernier message: 22/09/2005, 12h50

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