sql >> Database >  >> RDS >> PostgreSQL

plpgsql versnellen die documenttypen in een lus telt?

Het zou sneller moeten zijn om alle vier de variabelen in één query toe te wijzen (slechts één tabel of indexscan):

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;

Zelfde resultaat.

Normaal gesproken zou je id_doc . moeten aanvinken voor NULL bovendien, maar aangezien je een WHERE . hebt voorwaarde met = erop staat, mag het niet NULL . zijn .




  1. NodeJS MySQL-dump

  2. Mysql - optimalisatie - meerdere group_concat &joins met behulp van hebben

  3. Haal de laatste tijdstempelrij op uit de tabel met INNER JOIN

  4. Postgres-vensterfunctiekolom met Rails