partition table and stddev() /variance() behaviour

Поиск
Список
Период
Сортировка
От Rajkumar Raghuwanshi
Тема partition table and stddev() /variance() behaviour
Дата
Msg-id CAKcux6nU4E2x8nkSBpLOT2DPvQ5LviJ3SGyAN6Sz7qDH4G4+Pw@mail.gmail.com
обсуждение исходный текст
Ответы Re: partition table and stddev() /variance() behaviour  (David Rowley <david.rowley@2ndquadrant.com>)
Список pgsql-hackers
Hi,

I am getting different output for stddev/variance functions with partition tables.


CREATE TABLE part (c1 INT,c2 INT) PARTITION BY RANGE (c1);
CREATE TABLE part_p1 PARTITION OF part FOR VALUES FROM (1) TO (3);
CREATE TABLE part_p2 PARTITION OF part FOR VALUES FROM (3) TO (5);

INSERT INTO part VALUES (1,5),(2,15),(3,3),(4,17);

postgres=# SET parallel_setup_cost=0;
SET
postgres=# EXPLAIN SELECT COUNT(c1),STDDEV(c2),VARIANCE(c2) FROM part;
                                         QUERY PLAN                                        
--------------------------------------------------------------------------------------------
 Finalize Aggregate  (cost=70.36..70.37 rows=1 width=72)
   ->  Gather  (cost=70.12..70.33 rows=2 width=72)
         Workers Planned: 2
         ->  Partial Aggregate  (cost=70.12..70.13 rows=1 width=72)
               ->  Parallel Append  (cost=0.00..56.00 rows=1882 width=8)
                     ->  Parallel Seq Scan on part_p1  (cost=0.00..23.29 rows=1329 width=8)
                     ->  Parallel Seq Scan on part_p2  (cost=0.00..23.29 rows=1329 width=8)
(7 rows)

postgres=# SELECT COUNT(c1),STDDEV(c2),VARIANCE(c2) FROM part;
 count | stddev | variance
-------+--------+----------
     4 |      0 |        0
(1 row)

postgres=#
postgres=# RESET parallel_setup_cost;
RESET
postgres=# EXPLAIN SELECT COUNT(c1),STDDEV(c2),VARIANCE(c2) FROM part;
                              QUERY PLAN                              
-----------------------------------------------------------------------
 Aggregate  (cost=121.71..121.72 rows=1 width=72)
   ->  Append  (cost=0.00..87.80 rows=4520 width=8)
         ->  Seq Scan on part_p1  (cost=0.00..32.60 rows=2260 width=8)
         ->  Seq Scan on part_p2  (cost=0.00..32.60 rows=2260 width=8)
(4 rows)

postgres=# SELECT COUNT(c1),STDDEV(c2),VARIANCE(c2) FROM part;
 count |       stddev       |      variance      
-------+--------------------+---------------------
     4 | 7.0237691685684926 | 49.3333333333333333
(1 row)

Thanks & Regards,
Rajkumar Raghuwanshi
QMG, EnterpriseDB Corporation

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Ashutosh Sharma
Дата:
Сообщение: Re: New function pg_stat_statements_reset_query() to reset statisticsof a specific query
Следующее
От: Alexander Korotkov
Дата:
Сообщение: Re: Postgres 11 release notes