1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| SELECT * FROM
(
SELECT d.cod_drg as cod_drg, d.drg_descr as drg_descr, round(((count(*)/(SELECT count(*) FROM detail_sdo d WHERE d.anne='2008' AND d.mois='01' AND cdc LIKE '31464S503' AND cat_0='ORD'))*100),2) AS freq
FROM detail_sdo d
WHERE d.anne='2008' AND d.mois='01' AND cdc LIKE '31464S503' AND cat_0='ORD'
GROUP BY d.cod_drg, d.drg_descr
ORDER BY freq DESC LIMIT 5
)
UNION ALL
SELECT * FROM
(
SELECT 'autres drg' as cod_drg, 'autres descr' as drg_descr, round(((count(*)/(SELECT count(*) FROM detail_sdo d WHERE d.anne='2008' AND d.mois='01' AND cdc LIKE '31464S503' AND cat_0='ORD'))*100),2) AS freq
FROM detail_sdo d
WHERE d.anne='2008' AND d.mois='01' AND cdc LIKE '31464S503' AND cat_0='ORD'
AND NOT EXISTS
(
SELECT 1
FROM
(
SELECT d.cod_drg, d.drg_descr, round(((count(*)/(SELECT count(*) FROM detail_sdo d WHERE d.anne='2008' AND d.mois='01' AND cdc LIKE '31464S503' AND cat_0='ORD'))*100),2) AS freq
FROM detail_sdo d
WHERE d.anne='2008' AND d.mois='01' AND cdc LIKE '31464S503' AND cat_0='ORD'
GROUP BY d.cod_drg, d.drg_descr
ORDER BY freq DESC LIMIT 5
) d2
INNER JOIN d
ON d.cod_drg = d2.cod_drg
AND d.drg_descr = d2.drg_descr
)
) |