Postgres データベースがあり、次のように列ごとに乗算する必要があります。
SELECT SUM(column1*column2) AS res (...)
結果は0
です。両方の列がreal
タイプです。
しかし、乗算演算子は、次の場合にうまく機能します。
SELECT SUM(column * 100) AS res (...)
PostgreSQL で列を使用して算術演算を行うことは可能ですか?
Postgres データベースがあり、次のように列ごとに乗算する必要があります。
SELECT SUM(column1*column2) AS res (...)
結果は0
です。両方の列がreal
タイプです。
しかし、乗算演算子は、次の場合にうまく機能します。
SELECT SUM(column * 100) AS res (...)
PostgreSQL で列を使用して算術演算を行うことは可能ですか?
このクエリは問題なく機能します。
SELECT SUM(column1 * column2) AS res
FROM tbl;
結果res
が0
の場合、以下が必要です。
0
列の 1 つまたは両方にあり、NULL
少なくとも 1 つの行にはありません。0
またはNULL
、選択された他のすべての行のいずれかまたは両方の列に。または、他の些細な誤解が関係しています。列のエイリアスres
を と混同している可能性がありますresult
か?
サブクエリを使ってみる
SELECT
SUM(subq.multiplied_column)
FROM (
SELECT
column1 * column2 AS multiplied_column
FROM
table
) as subq
NULL 値にも注意してください。column1 または column2 の値が NULL の場合、SUM() のすべての結果が NULL になる可能性があり、使用している言語と接続ライブラリによっては、NULL ではなく 0 が結果として表示される場合があります。