1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| WITH zTestMoyenne AS (SELECT 'A' grp, 1 val FROM DUAL
UNION ALL SELECT 'A' grp, 2 val FROM DUAL
UNION ALL SELECT 'B' grp, 3 val FROM DUAL
UNION ALL SELECT 'C' grp, 4 val FROM DUAL
UNION ALL SELECT 'D' grp, 3 val FROM DUAL
UNION ALL SELECT 'D' grp, 5 val FROM DUAL
UNION ALL SELECT 'D' grp, 5 val FROM DUAL
UNION ALL SELECT 'D' grp, 6 val FROM DUAL
UNION ALL SELECT 'D' grp, 6 val FROM DUAL
UNION ALL SELECT 'D' grp, 6 val FROM DUAL
)
SELECT grp, ROUND(AVG(val),2) AS moyenne, percentile_cont(0.5) WITHIN GROUP (ORDER BY val) mediane,
MAX(modale)
FROM (
SELECT grp, val,
first_value(val) OVER (PARTITION BY grp ORDER BY nbval DESC) AS modale
FROM (
SELECT GRP, val,
COUNT(*) OVER (PARTITION BY grp, val) AS nbval
FROM zTestMoyenne
)
)
GROUP BY GRP |
Partager