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 31
| WITH ACTIVITE_AGG AS
(
SELECT col1, col2, ... coln, sum(prix) as prix, sum(nb) as nb
FROM ACTIVITEALL
WHERE IDFICHEANNONCEUR = 4447
AND DATEACTIVITE between to_date('2009-01-01 00:00:00','YYYY-MM-DD HH24:MI:SS')
AND to_date('2009-12-31 23:59:59','YYYY-MM-DD HH24:MI:SS')
GROUP BY col1, col2, ... coln
)
, ACTIVITE_AGG_REP AS
(
SELECT col1 as IDDATA, sum(prix) as prix, sum(nb) as nb,
ROW_NUMBER() OVER(order by sum(prix) desc) as RN
FROM ACTIVITE_AGG
GROUP BY col1
UNION ALL
SELECT col2 , sum(prix) , sum(nb) ,
ROW_NUMBER() OVER(order by sum(prix) desc)
FROM ACTIVITE_AGG
GROUP BY col2
UNION ALL
...
UNION ALL
SELECT coln , sum(prix) , sum(nb) ,
ROW_NUMBER() OVER(order by sum(prix) desc) as RN
FROM ACTIVITE_AGG
GROUP BY coln
)
SELECT IDDATA, prix, nb
FROM ACTIVITE_AGG_REP
WHERE RN < 10; |
Partager