Sélection de 3 lignes dans chaque groupe, vue ?
Bonjour,
J'ai un petit probleme. J'ai une table avec des articles et des categories.
article_id, cat_id
J'aimerais selectionner 3 articles par categories
donc j'ai la requete suivante :
Code:
1 2 3 4 5 6
| SELECT a1.*
FROM article a1
LEFT OUTER JOIN article a2
ON (a1.cat_id = a2.cat_id AND a1.price < a2.price)
GROUP BY a1.article_id
HAVING COUNT(*) < 3; |
Le probleme c'est que la requete prend 4 secondes !
Y'a moyen de fire mieux ? ou bien je devrais utiliser une vue issue de cette requete ?
Une vue serais elle plus performante a la longue ?
edit : bon ok, la vue est aussi lente ! Et pas moyen de faire de vue materialise sur postgresql 8.4 je crois ...
Si vous avez une autre solution je suis preneur ;)