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.
CREATE TABLE edits (
edit_id INT,
edit_page_id INT,
edit_time INT,
stat INT
);
INSERT INTO edits VALUES
(1, 10, 20210502, 90),
(2, 10, 20210503, 91),
(3, 20, 20210504, 91),
(4, 30, 20210504, 90),
(5, 30, 20210505, 92),
(6, 40, 20210505, 90),
(7, 50, 20210503, 90);
SELECT * FROM edits;

CREATE TABLE pages (
page_id INT,
cat_id INT
);
INSERT INTO pages VALUES
(10, 100),
(20, 100),
(30, 100),
(40, 100),
(50, 200);
SELECT * FROM pages;
edit_id edit_page_id edit_time stat
1 10 20210502 90
2 10 20210503 91
3 20 20210504 91
4 30 20210504 90
5 30 20210505 92
6 40 20210505 90
7 50 20210503 90
page_id cat_id
10 100
20 100
30 100
40 100
50 200
SELECT cat_id, stat, COUNT(*) cnt, GROUP_CONCAT(edit_id) edit_ids
FROM pages
JOIN edits ON pages.page_id = edits.edit_page_id
JOIN ( SELECT edit_page_id, MAX(edit_time) edit_time
FROM edits
GROUP BY edit_page_id ) last_time ON edits.edit_page_id = last_time.edit_page_id
AND edits.edit_time = last_time.edit_time
GROUP BY cat_id, stat
cat_id stat cnt edit_ids
100 90 1 6
100 91 2 2,3
100 92 1 5
200 90 1 7