add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
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 mytable (
pub_date date
);

INSERT INTO mytable VALUES
('2023-01-02'),
('2023-01-10'),
('2023-01-31'),
('2023-02-01'),
('2023-02-02'),
('2023-02-03'),
('2023-02-04'),
('2023-02-10'),
('2023-03-02'),
('2023-03-02'),
('2023-03-02'),
('2023-03-02'),
('2023-03-02'),
('2023-03-02'),
('2023-04-10'),
('2023-04-15'),
('2023-04-20'),
('2023-04-21');

SELECT * FROM mytable;
CREATE TABLE
INSERT 0 18
pub_date
2023-01-02
2023-01-10
2023-01-31
2023-02-01
2023-02-02
2023-02-03
2023-02-04
2023-02-10
2023-03-02
2023-03-02
2023-03-02
2023-03-02
2023-03-02
2023-03-02
2023-04-10
2023-04-15
2023-04-20
2023-04-21
SELECT 18
SELECT
date_trunc('month', pub_date)::date as pub_month,
COUNT(*)
FROM mytable
GROUP BY 1
pub_month count
2023-03-01 6
2023-01-01 3
2023-04-01 4
2023-02-01 5
SELECT 4
SELECT
*,
lag(count) OVER (ORDER BY pub_month) as prev_count
FROM (
SELECT
date_trunc('month', pub_date)::date as pub_month,
COUNT(*)
FROM mytable
GROUP BY 1
) s
pub_month count prev_count
2023-01-01 3 null
2023-02-01 5 3
2023-03-01 6 5
2023-04-01 4 6
SELECT 4
SELECT
*,
count * 100 / prev_count - 100
FROM (
SELECT
*,
lag(count) OVER (ORDER BY pub_month) as prev_count
FROM (
SELECT
date_trunc('month', pub_date)::date as pub_month,
COUNT(*)
FROM mytable
GROUP BY 1
) s
) s
pub_month count prev_count ?column?
2023-01-01 3 null null
2023-02-01 5 3 66
2023-03-01 6 5 20
2023-04-01 4 6 -34
SELECT 4
SELECT
*,
(count * 100 / prev_count - 100)::text || '%'
FROM (
SELECT
*,
lag(count) OVER (ORDER BY pub_month) as prev_count
FROM (
SELECT
date_trunc('month', pub_date)::date as pub_month,
COUNT(*)
FROM mytable
GROUP BY 1
) s
) s
pub_month count prev_count ?column?
2023-01-01 3 null null
2023-02-01 5 3 66%
2023-03-01 6 5 20%
2023-04-01 4 6 -34%
SELECT 4