|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Lycéen Inscription : janvier 2013 Messages : 6 ![]() |
Bonjour à tous,
voila je veux essayer de faire un classement des 100 produits qui ont le plus de votes et je ne vois pas comment récupérer les 100 produits en SQL. Pour l'instant je n'ai rien de concret et donc si vous avez une idée vous pouvez utiliser vos propres variables et je me débrouillerai. Merci d'avance. Bonne journée. |
|
|
01
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 2 206 ![]() |
Bonjour,
Pour le tri => ORDER BY Pour la limite .. ca dépend générallement du SGBD cherchez sur google avec les mots clefs limit / top / fetch first + le nom de votre SGBD |
|
|
00
|
|
|
#3 | ||
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 12 163 ![]() |
En SQL normatif :
Code :
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
||
|
00
|
|
|
#4 | ||
|
Membre émérite
![]() Inscription : août 2008 Messages : 854 ![]() |
Bonjour,
Il me semble que le PARTITION BY est de trop, ça va renvoyer 1 pour chaque ligne. Et c'est N <= 100. Code :
|
||
|
|
00
|
|
|
#5 | ||||
|
Membre Expert
![]() Inscription : août 2009 Messages : 1 013 ![]() |
C'est l'utilisation du COUNT avec ORDER BY qui me semble pour le moins étrange.
Code :
Code :
|
||||
|
|
00
|
|
|
#6 | |
|
Membre émérite
![]() Inscription : août 2008 Messages : 854 ![]() |
Citation:
En admettant que l'on ne définisse pas de second critère de tri pour départager les ex-aequo, et que les produits de 90 à 110 aient le même nombre de votes, la requête avec count renverra les 90 premiers, rank() en renverra 110, et row_number() en renverra 100, les 10 derniers retournés arbitrairement. Quant à dense_rank, s'il y a souvent des ex-aequo on peut vite se retrouver avec beaucoup plus de lignes que prévu. |
|
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 12 163 ![]() |
Sans respect de la charte de postage, difficile de vous aider .
A lire et poster le DDL de vos tables ainsi qu'un jeu d'essais : http://www.developpez.net/forums/d96...vement-poster/
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#8 |
|
Membre Expert
![]() Inscription : août 2009 Messages : 1 013 ![]() |
|
|
|
00
|
|
|
#9 |
![]() ![]() |
Ça fait un cumul, c'est plutôt très pratique.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 1 805 ![]() |
Bonjour,
Waldar, tu peux préciser ? Je pense comme Rei Ichido, qui s'interroge sur l'interet d'un tri avec le COUNT... Ou alors on a loupé quelque chose ? |
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() Inscription : août 2009 Messages : 1 013 ![]() |
Ok, effectivement sous Oracle ça fonctionne bien en cumul ; par contre sous SQL Server 2008, ça ne passe pas.
J'aurais appris quelque chose \o/ |
|
|
00
|
|
|
#12 |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 1 805 ![]() |
|
|
|
00
|
|
|
#13 |
![]() ![]() |
Ça fonctionne enfin chez MS avec SQL-Server 2012.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#14 |
|
Invité de passage
![]() Lycéen Inscription : janvier 2013 Messages : 6 ![]() |
Merci a tous j'ai pu réussir a faire tout ca !! =)
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com