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 : Sélectionner tout - Visualiser dans une fenêtre à part
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