By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
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