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 が結果として表示される場合があります。