Ce code là me génére les ventes moyennes de chaque article par catégorie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 select categorie, article, avg(ventes) as average_ventes, ROW_NUMBER() OVER(partition by categorie order by categorie, avg(ventes) DESC) AS 'RowNumber' from ARTILCES P inner join VENTES V on V.article = A.article group by categorie, V.article
Le RowNumber est une colonne que j'ai du ajouter pour numéroter les lignes de chaque catégorie (se réinitalize à 1 à chaque changement dans le colonne catégorie)
donc, des enregistrements de la forme (categorie, article, ventes, rownumber)
ce n'est qu'un petit aperçu car le rownumber peut aller à 2000 ou plus par exemple...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 cat1 1204640 71.4060 1 cat1 396233 41.9904 2 cat1 1249238 18.9575 3 cat1 396226 5.5059 4 cat2 2827032 908.122 1 cat2 1294508 446.263 2 cat2 1284515 95.345 3 cat3 2755212 815.432 1 cat3 2269163 721.295 2 cat3 3560884 349.409 3 cat3 3560921 78.424 4 cat3 3560922 68.424 5
Ce que je veux en fait, c'est d'extraire l'information :
"Quel article (par catégorie bien entendu) occupe la position médiane?"
je m'explique:
pour catégorie 1 : nous avons 4 articles
50% des articles de categorie1 ici ont un volume de ventes supérieur à 41.9904 (l'ordre fourni par le code sql le montre bien)
En plus simple, la position médiane correspond à l'article dont le rownumber est égal au max de ses rownumbers (ici cat1-->4, cat2-->3 et cat3-->5) divisé par 2
Des idées ? merci
Partager