Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit6244c2d

Browse files
committed
Fix stddev_pop(numeric) and var_pop(numeric), which were incorrectly producing
the same outputs as stddev_samp() and var_samp() respectively.
1 parent9e09e3b commit6244c2d

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

‎src/backend/utils/adt/numeric.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* Copyright (c) 1998-2007, PostgreSQL Global Development Group
1515
*
1616
* IDENTIFICATION
17-
* $PostgreSQL: pgsql/src/backend/utils/adt/numeric.c,v 1.105 2007/06/15 20:56:50 tgl Exp $
17+
* $PostgreSQL: pgsql/src/backend/utils/adt/numeric.c,v 1.106 2007/07/09 16:13:57 tgl Exp $
1818
*
1919
*-------------------------------------------------------------------------
2020
*/
@@ -2435,7 +2435,10 @@ numeric_stddev_internal(ArrayType *transarray,
24352435
}
24362436
else
24372437
{
2438-
mul_var(&vN,&vNminus1,&vNminus1,0);/* N * (N - 1) */
2438+
if (sample)
2439+
mul_var(&vN,&vNminus1,&vNminus1,0);/* N * (N - 1) */
2440+
else
2441+
mul_var(&vN,&vN,&vNminus1,0);/* N * N */
24392442
rscale=select_div_scale(&vsumX2,&vNminus1);
24402443
div_var(&vsumX2,&vNminus1,&vsumX,rscale, true);/* variance */
24412444
if (!variance)

‎src/test/regress/expected/aggregates.out

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ SELECT var_samp(b) FROM aggtest;
102102
SELECT stddev_pop(b::numeric) FROM aggtest;
103103
stddev_pop
104104
------------------
105-
151.389361431288
105+
131.107032862199
106106
(1 row)
107107

108108
SELECT stddev_samp(b::numeric) FROM aggtest;
@@ -114,7 +114,7 @@ SELECT stddev_samp(b::numeric) FROM aggtest;
114114
SELECT var_pop(b::numeric) FROM aggtest;
115115
var_pop
116116
--------------------
117-
22918.738754573025
117+
17189.054065929769
118118
(1 row)
119119

120120
SELECT var_samp(b::numeric) FROM aggtest;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp