sql >> データベース >  >> RDS >> PostgreSQL

ループ内のドキュメントタイプをカウントするplpgsqlを高速化しますか?

    1つのクエリで4つの変数すべてを割り当てる方が速いはずです(1つのテーブルまたはインデックススキャンのみ):

    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;
    

    同じ結果。

    通常、id_docを確認する必要があります NULLの場合 さらに、WHEREがあるので =の条件 その上で、NULLにすることはできません 。




    1. カンマ区切りの値を持つmysql

    2. SQLiteの既存のテーブルからCREATETABLEスクリプトを生成する3つの方法

    3. データベーステーブル内の行の作成順序を決定するためにidまたはtimestampを使用する必要がありますか? (システムクロックが正しく設定されていない可能性があります)

    4. oracleクエリがREGEXP_SUBSTR(AGGREGATOR、'[^;] +'、1、LEVEL)で遅い