Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/09/2011, 16h40   #1
Invité de passage
 
Inscription : septembre 2011
Messages : 1
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 1
Points : 0
Points : 0
Par défaut Temps moyen de toutes les données et temps d'éxécution depuis la veille

Bonjour,

Dans une table j'ai des dates de début et de fin d’exécution de traitement.
Je veux sortir le temps moyen d’exécution des traitements, et les derniers temps d'exécution :
Code :
1
2
SELECT AVG(round(to_number(EXE_DT_FIN - EXE_DT_DEM)*1440)) AS AVERAGE
FROM BASEQ.BQ_EXECUTION
Et en même temps je veux sortir les temps d’exécution récents :
Code :
1
2
3
SELECT (round(to_number(EXE_DT_FIN - EXE_DT_DEM)*1440)) AS DUREE
FROM BASEQ.BQ_EXECUTION
WHERE EXE_DT_DEM > SYSDATE-1
Je cherche désespérément mais je ne trouve pas de moyen d'avoir les résultats en une fois.

Les vraies requêtes :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT TACTAC_PLA_CODE, TRT_CODE, TRT_DESI,  
AVG(round(to_number(EXE_DT_FIN - EXE_DT_DEM)*1440)) AS AVERAGE
FROM BASEQ.BQ_TRAITEMENT, BASEQ.BQ_TAC_TAC, BASEQ.BQ_EXECUTION 
WHERE TRT_CODE = TACTAC_TRT_CODE AND EXE_TAC_TRT_CODE = TRT_CODE AND TRT_INT_IDENT_LR='O' AND EXE_TAC_TRT_CODE = TRT_CODE AND EXE_TAC_TRT_CODE = TRT_CODE
GROUP BY EXE_TAC_TRT_CODE,TACTAC_PLA_CODE, TRT_CODE, TRT_DESI,EXE_DT_FIN , EXE_DT_DEM
 
 
 
SELECT TACTAC_PLA_CODE, TRT_CODE, TRT_DESI,  
(round(to_number(EXE_DT_FIN - EXE_DT_DEM)*1440)) AS DUREE,
FROM BASEQ.BQ_TRAITEMENT, BASEQ.BQ_TAC_TAC, BASEQ.BQ_EXECUTION 
WHERE TRT_CODE = TACTAC_TRT_CODE AND EXE_TAC_TRT_CODE = TRT_CODE AND TRT_INT_IDENT_LR='O' AND EXE_TAC_TRT_CODE = TRT_CODE AND EXE_TAC_TRT_CODE = TRT_CODE AND EXE_DT_DEM > SYSDATE-1 
GROUP BY EXE_TAC_TRT_CODE,TACTAC_PLA_CODE, TRT_CODE, TRT_DESI,EXE_DT_FIN , EXE_DT_DEM
castscratch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 17h03   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 686
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 686
Points : 10 431
Points : 10 431
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
L'idée générale, c'est de faire quelque chose ainsi :
Code :
1
2
3
4
5
6
SELECT AVG(round(to_number(EXE_DT_FIN - EXE_DT_DEM)*1440)) AS AVERAGE
     , CASE
         WHEN EXE_DT_DEM > SYSDATE-1
         THEN (round(to_number(EXE_DT_FIN - EXE_DT_DEM)*1440))
       END AS DUREE
  FROM BASEQ.BQ_EXECUTION;
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2011, 09h17   #3
Membre expérimenté
 
François
Inscription : février 2010
Messages : 306
Détails du profil
Informations personnelles :
Nom : François

Informations forums :
Inscription : février 2010
Messages : 306
Points : 536
Points : 536
Et un UNION ALL, ca ne couvrirait pas votre besoin?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
TMP@minilhc >SELECT avg(n),'moyenne' FROM tmp union ALL SELECT n,'unique' FROM tmp ORDER BY 2,1;
 
    AVG(N) 'MOYENNE'
---------- -------
         5 moyenne
         1 UNIQUE
         2 UNIQUE
         3 UNIQUE
         4 UNIQUE
         5 UNIQUE
         6 UNIQUE
         7 UNIQUE
         8 UNIQUE
         9 UNIQUE
Rams7s est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h33.


 
 
 
 
Partenaires

Hébergement Web