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

NoSQL Discussion :

[Hive] Démultiplier nombre de ligne --> boucle ?


Sujet :

NoSQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut [Hive] Démultiplier nombre de ligne --> boucle ?
    Bonjour,

    J'ai un fichier décrivant les activités saisies par les collaborateurs de mon entreprise, par semaine.
    une saisie = une activité + un code projet, une ligne par semaine pour chaque couple (activité,projet)
    colonne "date fin semaine" = date du dimanche de la semaine concernée.
    un dessin vaut mieux qu'un long discours, voici a quoi ressemble mon fichier:

    Nom : Capture d’écran 2019-03-05 à 22.29.37.png
Affichages : 238
Taille : 61,4 Ko

    Ce que je souhaiterai, c'est une ligne par jour et non une ligne par semaine, il faut donc démultiplier le nombre de ligne. Par exemple, pour la ligne concernant "Jean Jean"

    Nom : Capture d’écran 2019-03-05 à 22.31.37.png
Affichages : 238
Taille : 19,3 Ko

    Comment faire ?

    Je ne sais pas si j'ai été très clair... mais ca fait un moment que je réfléchis à cela, et je cale !
    Images attachées Images attachées   

  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
    Vous voulez le faire sur Excel ou sur une base de données ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Je suis sur une base de données Hive.
    Voici le code utilisé pour consuire cette table:
    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
    16
    17
    18
    19
     
    SELECT 
    dc_agentpe_creation_id,
    dc_codeactivitetache,
    dc_codecontexte,
    dc_utilisateurpe,
    dc_valeurlundi,
    dc_valeurmardi,
    dc_valeurmercredi,
    dc_valeurjeudi,
    dc_valeurvendredi,
    dc_valeursamedi,
    dc_valeurdimanche,
    dc_valeurtotalsaisie,
    dd_datedebutsemaine
    FROM braff00.pr00_ppr042_saisieactiviterh
    where 
        dd_datedebutsemaine>='2019-01-01'  
        and kd_dateextraction in (select MAX(kd_dateextraction) from braff00.pr00_ppr042_saisieactiviterh) limit 400;
    Merci

  4. #4
    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
    Deux méthodes.
    Une version SQL à base d'UNION ALL, à compléter :
    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
    16
    SELECT dc_agentpe_creation_id
         , dc_codeactivitetache
         , dc_codecontexte
         , dc_utilisateurpe
         , dc_valeurlundi
         , dd_datedebutsemaine + 0 as datejour
      FROM braff00.pr00_ppr042_saisieactiviterh
     UNION ALL
    SELECT dc_agentpe_creation_id
         , dc_codeactivitetache
         , dc_codecontexte
         , dc_utilisateurpe
         , dc_valeurmardi
         , dd_datedebutsemaine + 1 as datejour
      FROM braff00.pr00_ppr042_saisieactiviterh
    ...
    Et une version à base de explode ( map ( ) ) que ressemblera à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select explode(map(dd_datedebutsemaine + 0, dc_valeurlundi,
                       dd_datedebutsemaine + 1, dc_valeurmardi,
                       ...)) as (date, valtotale)
      from braff00.pr00_ppr042_saisieactiviterh

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Avec un peu de retard, merci !
    La requête avec UNION fonctionne bien.

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

Discussions similaires

  1. Boucle sur les feuilles d'un fichier et calcul du nombre de lignes
    Par eric4459 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/01/2015, 15h33
  2. Réponses: 2
    Dernier message: 24/04/2014, 10h39
  3. [3.2] [Excel ou MySQL] traiter un nombre de ligne puis bouclé si condition
    Par slimlus dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 08/11/2010, 23h43
  4. Réponses: 2
    Dernier message: 02/03/2004, 19h38
  5. [TListView] Compter le nombre de lignes
    Par agh dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/09/2002, 20h25

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