Page 1 sur 1

Rechercher efficacement sur l'année courante et les 2 années précédentes

Posté : ven. 8 sept. 2017 13:55
par Phil
Merci à Florence pour sa question :

Dans une requête j’utilisais un critère EX (ex est une colonne texte) que je dois remplacer pas un to_char(EMIS,’YYYY’) (emis est une colonne timestamp)

AND ex >= (EXTRACT (YEAR FROM CURRENT_DATE)-2)::text
devient
AND to_char(emis,'YYYY') >= (EXTRACT (YEAR FROM CURRENT_DATE)-2)::text

Je vois que cette requête est beaucoup plus longue,

Y aurait-il plus rapide au niveau syntaxe pour faire cela ?


Réponse :
Supposons qu'un index ait été créé directement sur la colonne EMIS. Tu peux donner la possibilité au planner de le considérer en n’appliquant pas de fonction sur cette colonne dans la clause WHERE.
Exemple :

Code : Tout sélectionner

select count(*) from NOM_TABLE
where emis >= date_trunc('year', current_date)- interval '2' year;