By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
Help with an interesting Postgres question: Why isn't an Index Only Scan used on a partition accessed via the parent table?.
CREATE TABLE
INSERT 0 13
date |
---|
2015-11-17 |
2015-11-15 |
2015-11-11 |
2015-11-10 |
2015-11-09 |
2015-11-08 |
2015-11-07 |
2015-11-06 |
2015-11-05 |
2015-11-04 |
SELECT 10
name | date_rnk | count |
---|---|---|
JHG | 3 | 10 |
UYH | 2 | 10 |
XYZ | 3 | 20 |
ZRE | 1 | 50 |
ZZ4 | 4 | 54 |
ZZ5 | 5 | 55 |
ZZ6 | 6 | 56 |
ZZ7 | 7 | 57 |
ZZ8 | 8 | 58 |
ZZ9 | 9 | 59 |
ZZZ | 10 | 60 |
SELECT 11
?column? |
---|
bookname, "04/11/2015", "05/11/2015", "06/11/2015", "07/11/2015", "08/11/2015", "09/11/2015", "10/11/2015", "11/11/2015", "15/11/2015", "17/11/2015" |
SELECT 1
bookname | date1 | date2 | date3 | date4 | date5 | date6 | date7 | date8 | date9 | date10 |
---|---|---|---|---|---|---|---|---|---|---|
JHG | null | null | null | null | null | null | null | 10 | null | null |
UYH | null | null | null | null | null | null | null | null | 10 | null |
XYZ | null | null | null | null | null | null | null | 20 | null | null |
ZRE | null | null | null | null | null | null | null | null | null | 50 |
ZZ4 | null | null | null | null | null | null | 54 | null | null | null |
ZZ5 | null | null | null | null | null | 55 | null | null | null | null |
ZZ6 | null | null | null | null | 56 | null | null | null | null | null |
ZZ7 | null | null | null | 57 | null | null | null | null | null | null |
ZZ8 | null | null | 58 | null | null | null | null | null | null | null |
ZZ9 | null | 59 | null | null | null | null | null | null | null | null |
ZZZ | 60 | null | null | null | null | null | null | null | null | null |
SELECT 11
CREATE FUNCTION
f_generate_date10_sql |
---|
SELECT * FROM crosstab_int10( 'SELECT * FROM ( SELECT name , dense_rank() OVER (ORDER BY date DESC) AS date_rnk , count FROM book WHERE sid = 1 ) sub WHERE date_rnk < 11 ORDER BY name, date_rnk DESC' , 'SELECT generate_series(10, 1, -1)' ) AS ct(bookname, "04/11/2015", "05/11/2015", "06/11/2015", "07/11/2015", "08/11/2015", "09/11/2015", "10/11/2015", "11/11/2015", "15/11/2015", "17/11/2015") |
SELECT 1