Requête SQL - doublons oui mais .. [Résolu] - SQL/NoSQL - Programmation
Marsh Posté le 25-02-2006 à 20:47:39
Tu peux faire des sous-requêtes ?
En gros il te faut les 2 valeurs les plus grandes de chaque type ?
Code :
|
Marsh Posté le 25-02-2006 à 21:03:01
Cette requête n'a pas l'air de marcher, et j'avoue que sa logique me depasse un peu
La problematique que je pose, a l'air de poser problème !
Est-t'il possible de faire ce que je demande en une seule requête ?
Si les gens qui passeront par ici veulent bien nous éclairer de leur connaissance
Je donne pour tester ma table complété
Code :
|
Merci de ta réponse !
Marsh Posté le 25-02-2006 à 21:55:42
Tu utilises mySql ? Quelle version ?
Je pense que ma requête marche, sauf sur les anciennes versions de mySql qui n'acceptent pas les sous-requêtes.
Marsh Posté le 25-02-2006 à 22:25:31
Cela marche, maintenant je cherche à faire la même chose avec les 5 derniers resultats
tu as peut être une idée ?
Marsh Posté le 26-02-2006 à 09:39:59
S'il n'y a que 25 types différents, alors il vaut mieux repartir sur ta solution initiale si tu veux les 5 plus grandes valeurs par type.
Mets un index sur type si ce n'est pas déjà fait, et ça devrait pas prendre plus de quelques secondes ...
Marsh Posté le 25-02-2006 à 00:28:35
Voila, imaginons une table formé comme ceci
ID | TYPE | VALEUR
1 | X | 1
2 | Y | 2
3 | X | 3
4 | Y | 4
5 | X | 5
6 | Y | 6
Je voudrais formuler une requête qui correspondrait à:
"Récupérer les 2 dernières valeurs de chaque type"
En gros, un 'SELECT DISTINCT type' couplé à un 'SELECT [...] WHERE type=type LIMIT 0,2'
Je sais que GROUP BY permet de recuperer les doublons, ça se rapproche de ce que je veux mais c'est pas ça
Pour l'instant, je recupère les types par un SELECT DISTINCT et je fais un SELECT [...] LIMIT 0,2 par derrière, mais sur 83000 enregistrements et 25 types, cela prend ennormément de temps (+ de 1 minute)
Si vous avez une idée .. merci d'avance
Message édité par debh le 25-02-2006 à 22:00:42