Bonjour,comment effectuer un ranking avec SQLCE ?
Les sous-requêtes ne sont pas pris en charge comme la clause OVER.
je dois faire un ranking d'une moyenne (AVG).
Bonjour,comment effectuer un ranking avec SQLCE ?
Les sous-requêtes ne sont pas pris en charge comme la clause OVER.
je dois faire un ranking d'une moyenne (AVG).
Bonjour,
Un exemple :
@++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
32
33
34
35
36
37
38
39 SET NOCOUNT ON DECLARE @toto TABLE ( nom char(1) NOT NULL , points tinyint NOT NULL ) INSERT INTO @toto VALUES ('A', 1) INSERT INTO @toto VALUES ('A', 2) INSERT INTO @toto VALUES ('A', 3) INSERT INTO @toto VALUES ('B', 8) INSERT INTO @toto VALUES ('B', 7) INSERT INTO @toto VALUES ('B', 6) INSERT INTO @toto VALUES ('B', 5) INSERT INTO @toto VALUES ('C', 0) INSERT INTO @toto VALUES ('C', 9) INSERT INTO @toto VALUES ('C', 255) SELECT T1.nom , T1.avg_points , ( SELECT COUNT(DISTINCT T2.avg_points) FROM ( SELECT nom , AVG(points) AS avg_points FROM @toto GROUP BY nom ) AS T2 WHERE T1.avg_points <= T2.avg_points ) AS rang FROM ( SELECT nom , AVG(points) AS avg_points FROM @toto GROUP BY nom ) AS T1 ORDER BY rang![]()
Il y a une sous-requête... (avec SQLCE ce n'est pas possible...)
Merci quand même
Je vais peut-être changer pour un SQL Express
Ha, je pensais que c'était un requis pour votre application
Pensez peut-être à prendre l'édition developer, qui coûte une quarantaine d'€.
Elle contient toutes les fonctionnalités de SQL Server
@++![]()
Je suis présentement en stage, je fais une application pour un IUT. Les poste sont barré, de plus SQLCE était intéressant car aucune installation d'une bdd quand l'application sera déployée. Sinon, pour mes besoins, la version Express est aussi bonne.Dans ce cas j'utiliserai la fonction rank(). Dans ce cas,je devrai géré les services a ouvrir pour l'application. Je n'ai pas besoin de développer car il faut que je déploie l'application et s'est légalement impossible.
Merci
comment faire le RANK de la moyenne de cette requete
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 SELECT NoEtud, NoUnite, Moyenne, (SELECT COUNT(Moyenne) AS Expr1 FROM (SELECT ETUD.noETUD, unite.nomunite, AVG(module.coeff * ETUD_MODULE.resultat) AS Moyenne FROM ETUD INNER JOIN ETUD_MODULE ON ETUD.noETUD = ETUD_MODULE.noETUD INNER JOIN module ON ETUD_MODULE.nommodule = module.nomintmodule INNER JOIN unite ON module.nomunite = unite.nomunite GROUP BY ETUD.noETUD, unite.nomunite) AS T2 WHERE (T1.Moyenne <= Moyenne)) AS rang FROM (SELECT ETUD_1.noETUD AS NoEtud, unite_1.nomunite AS NoUnite, AVG(module_1.coeff * ETUD_MODULE_1.resultat) AS Moyenne FROM ETUD AS ETUD_1 INNER JOIN ETUD_MODULE AS ETUD_MODULE_1 ON ETUD_1.noETUD = ETUD_MODULE_1.noETUD INNER JOIN module AS module_1 ON ETUD_MODULE_1.nommodule = module_1.nomintmodule INNER JOIN unite AS unite_1 ON module_1.nomunite = unite_1.nomunite GROUP BY ETUD_1.noETUD, unite_1.nomunite) AS T1 ORDER BY rang
Partager