Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2944 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  pourcentage ou volume cumulé

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pourcentage ou volume cumulé

n°2204440
eiramo
Posté le 27-09-2013 à 17:57:57  profilanswer
 

Bonjour,
COmment écrire une requête SQL pour Oracle qui me permet de connaitre un % et un volume cumulé à partir d'une table ?
 
Voici mes données

Code :
  1. CLIENT  COMMANDE   NB
  2. Client1  cmd1      10
  3. Client1  cmd2       5
  4. Client2  cmd1       3
  5. Client2  cmd2       2
  6. Client2  cmd3       5


 
J'aimerais avoir un résultat de ce style là avec un tri décroissant par CLIENT sur le NB

Code :
  1. CLIENT  CmdTotal    COMMANDE   NB   CmdCumul   PctNB   PctCumul
  2. Client1     15        cmd1     10       10      0.67     0.67
  3. Client1     15        cmd2      5       15      0.33     1
  4. Client2     10        cmd3      5        5      0.50     0.50
  5. Client2     10        cmd1      3        8      0.30     0.80
  6. Client2     10        cmd2      2       10      0.20     1


 
Mon autre question est : comment insérer les résultats dans une table Oracle de stockage des données calculées.
Sachant que je ne veux conserver que les résultats qui ont une volumétrie suffisante pour être intéressant.
Ainsi, je veux garder, pour chaque CLIENT les lignes pour lesquelles NB > 2 et tant que PctCumul est <= 0.80
 
Auriez-vous une idée de comment faire ?
 
Merci à tous,
MarieO

mood
Publicité
Posté le 27-09-2013 à 17:57:57  profilanswer
 

n°2204658
Yonel
Monde de merde !
Posté le 30-09-2013 à 12:21:01  profilanswer
 

Pour ta colonne PctNB tu peux par exemple utiliser une CTE (common table expression) :
 

Code :
  1. WITH totals As
  2. (SELECT SUM(NB) As cumul, client FROM ClientCommande GROUP BY client)
  3. SELECT c.id, c.client, c.commande, c.nb,
  4. CAST(NB As float) / CAST(cumul As float) As PctNB
  5. FROM ClientCommande c INNER JOIN totals ON c.client = totals.client


 
Pour tes colonnes de cumuls c'est un peu plus compliqué, il faut regarder du côté des cumulatives sums sous Oracle. Regarde par exemple là-dessus : http://nimishgarg.blogspot.hk/2010 [...] using.html, ça t'inspirera peut-être.

n°2204944
eiramo
Posté le 01-10-2013 à 17:29:45  profilanswer
 

Bonjour,
J'ai utilisé les fonctions analytiques pour y arriver et cela fonctionne correctement.
Merci de votre aide.
 
Eiramo


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  pourcentage ou volume cumulé

 

Sujets relatifs
[PHP] Upload multiples : variables ne passent pas si trop de volumealgo calcul de volume objet 3d
SVG et positionnements en pourcentageExcel ( macro pour un pourcentage avec boucle) resolu
flash as2 potard volume + liste track mp3Calculer un pourcentage dans une requete
Volume son microphoneAlgorithme de repartition en pourcentage
Un peu de maths - Calcul du volume englobant d'une spotlight 
Plus de sujets relatifs à : pourcentage ou volume cumulé


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR