回答編集履歴
3
推敲
test
CHANGED
@@ -1,7 +1,4 @@
|
|
1
1
|
欠損値というのがNullを指しているなら、Null値は集約対象とはならないからです。
|
2
|
-
「1を掛ける」ことは関係ありません。
|
3
|
-
逆に、COALESCE()によってNullを回避した場合は結果が変わるはずです。
|
4
|
-
|
5
2
|
[集約関数](https://www.postgresql.jp/document/15/html/functions-aggregate.html)
|
6
3
|
> avg ( smallint ) → numeric
|
7
4
|
> avg ( integer ) → numeric
|
@@ -12,3 +9,8 @@
|
|
12
9
|
> avg ( interval ) → interval
|
13
10
|
> すべての**非NULL入力値の平均**(算術平均)を計算します。
|
14
11
|
|
12
|
+
「1を掛ける」ことは関係ありません。
|
13
|
+
逆に、COALESCE()によってNullを回避した場合は結果が変わるはずです。
|
14
|
+
> AVG((COALESCE(unit_price, 1.0) - unit_cost) / COALESCE(unit_price, 1.0)) AS unit_profit_rate
|
15
|
+
> と記述したのと同じ結果が出力されるのですが、
|
16
|
+
上記で結果が変わらないなら、`unit_cost`がNullなのではないでしょうか。
|
2
追記
test
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
欠損値というのがNullを指しているなら、Null値は集約対象とはならないからです。
|
2
2
|
「1を掛ける」ことは関係ありません。
|
3
|
+
逆に、COALESCE()によってNullを回避した場合は結果が変わるはずです。
|
3
4
|
|
4
5
|
[集約関数](https://www.postgresql.jp/document/15/html/functions-aggregate.html)
|
5
6
|
> avg ( smallint ) → numeric
|
1
追記
test
CHANGED
@@ -1,2 +1,13 @@
|
|
1
1
|
欠損値というのがNullを指しているなら、Null値は集約対象とはならないからです。
|
2
2
|
「1を掛ける」ことは関係ありません。
|
3
|
+
|
4
|
+
[集約関数](https://www.postgresql.jp/document/15/html/functions-aggregate.html)
|
5
|
+
> avg ( smallint ) → numeric
|
6
|
+
> avg ( integer ) → numeric
|
7
|
+
> avg ( bigint ) → numeric
|
8
|
+
> avg ( numeric ) → numeric
|
9
|
+
> avg ( real ) → double precision
|
10
|
+
> avg ( double precision ) → double precision
|
11
|
+
> avg ( interval ) → interval
|
12
|
+
> すべての**非NULL入力値の平均**(算術平均)を計算します。
|
13
|
+
|