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 tab(
submission_date DATE,
submission_id INT,
hacker_id INT,
score INT
);
INSERT INTO tab VALUES
( '2016-03-01', 11, 1, 0 ),
( '2016-03-01', 12, 3, 15 ),
( '2016-03-01', 13, 2, 60 ),
( '2016-03-03', 14, 1, 0 ),
( '2016-03-03', 15, 4, 60 ),
( '2016-03-03', 16, 2, 25 ),
( '2016-03-03', 17, 2, 60 ),
( '2016-03-08', 18, 1, 0 ),
( '2016-03-08', 19, 5, 70 );
9 rows affected
WITH cte AS (
SELECT *,
DENSE_RANK() OVER(
ORDER BY submission_date ) AS rn_competition,
DENSE_RANK() OVER(
PARTITION BY hacker_id
ORDER BY submission_date) AS rn_submission
FROM tab
)
SELECT *
FROM cte
WHERE rn_competition = rn_submission
ORDER BY submission_id

submission_date submission_id hacker_id score rn_competition rn_submission
2016-03-01 11 1 0 1 1
2016-03-01 12 3 15 1 1
2016-03-01 13 2 60 1 1
2016-03-03 14 1 0 2 2
2016-03-03 16 2 25 2 2
2016-03-03 17 2 60 2 2
2016-03-08 18 1 0 3 3