Bonjour

Alors voilà, j'ai un petit soucis pour une requête croisée..
Je possède une table (maTable), contenant 4 champs :

maTable
------------
Numéro_téléphone (varchar2(10))
Profil (varchar2(20))
Débits (Number(6))
Latence (Number(2)) (chiffre de 0 à 63)

Ce que je souhaiterai, c'est obtenir les moyennes des latences ainsi que le nombre de numéros de téléphone en fonction d'un pas de débit (j'entends par là "tous les 1000Ko/s" par exemple), le tout groupé par profil.
Le tableau final doit donc ressembler à ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
           1M    2M    3M    4M     1M    2M     3M     4M
Profil1   10      8     19     5    34.3  32.1   54.3   24.5
Profil2    5      6     56    32    6.9   38.6    7.9   21.1
Profil3   23     65     78     4    54.5  43.2   87.4   98.9
Idéalement je préfèrerai évidemment avoir dans la case profil1-1M le nombre de numéros et la moyenne des latences, tout ça dans la même case, mais je ne suis pas sûr que ça soit faisable! Voilà pourquoi mon idée était de sortir les colonnes comprenant le nombre de numéros en fonction des profils, et les latences ensuite (donc comme le tableau que je vous ai montré).

Mon soucis se trouve au niveau des moyennes! Je n'arrive pas à calculer les moyennes de mes latences..

Voilà ce que j'ai déjà pour le comptage des numéros (fonctionne bien) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
select profil,
count(CASE WHEN debit>=1000 AND debit<2000 THEN 1) AS 1M,
count(CASE WHEN debit>=2000 AND debit<3000 THEN 1) AS 2M,
count(CASE WHEN debit>=3000 AND debit<4000 THEN 1) AS 3M,
count(CASE WHEN debit>=4000 AND debit<5000 THEN 1) AS 4M
 
## ... Moyennes latences... ##
 
FROM maTable
GROUP BY profil ORDER BY profil;
Pour les moyennes j'avais pensé à quelque chose dans ce style, mais ça m'a l'air foireux.. :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
SELECT profil,
(CASE latence WHEN debit>=1000 AND debit<2000 THEN avg(latence)) AS 1M,
etc etc..
??? Merci de votre aide (si bien entendu je peux éviter en plus ce "doublage" de colonnes alors j'en serai ravi )