PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Accélérer plpgsql qui compte les types de documents dans une boucle ?

Il devrait être plus rapide d'affecter les quatre variables dans une requête (un seul parcours de table ou d'index) :

SELECT INTO validador, validador2, validador3, validador4
            sum(CASE id_tipo_cifra WHEN 901 THEN 1 ELSE 0 END)
           ,sum(CASE id_tipo_cifra WHEN 902 THEN 1 ELSE 0 END)
           ,sum(CASE id_tipo_cifra WHEN 905 THEN 1 ELSE 0 END)
           ,sum(CASE id_tipo_cifra WHEN 907 THEN 1 ELSE 0 END)
FROM   webdte.doc_tip_cifra
WHERE  id_doc = id_documento;

Même résultat.

Normalement, vous devriez vérifier id_doc pour NULL en plus, mais puisque vous avez un WHERE condition avec = dessus, il ne peut pas être NULL .