You are viewing a single comment's thread. Return to all comments →
MS SQL SERVER
WITH TBL1 AS ( -- all hacker_id who made at least one submission each day SELECT DISTINCT submission_date ,hacker_id From Submissions Sub WHERE hacker_id IN ( SELECT DISTINCT hacker_id FROM Submissions WHERE submission_date <= Sub.submission_date GROUP BY hacker_id HAVING COUNT(DISTINCT submission_date) = ( SELECT COUNT(DISTINCT submission_date) FROM Submissions WHERE submission_date <= Sub.submission_date ) ) ) ,TBL2 AS ( --no of unique hacker_id who made at least one submission each day SELECT submission_date ,COUNT(hacker_id) AS hackerNr From TBL1 GROUP BY submission_date ) ,TBL3 AS ( -- number of submissions made by hacker each day SELECT hacker_id ,submission_date ,COUNT(submission_id) AS nrSub FROM Submissions GROUP BY hacker_id, submission_date ) ,TBL4 AS ( -- lowest hacker_id each day SELECT DISTINCT T1.submission_date ,T2.hackerNr ,MIN(T3.hacker_id) AS hackerID FROM TBL1 T1 LEFT JOIN TBL2 T2 ON T1.submission_date = T2.submission_date LEFT JOIN TBL3 T3 ON T1.submission_date = T3.submission_date WHERE T3.nrSub = (SELECT MAX(nrSub) FROM TBL3 WHERE submission_date = T1.submission_date GROUP BY submission_date) GROUP BY T1.submission_date, T2.hackerNr ) SELECT TBL4.* ,H.name FROM TBL4 LEFT JOIN Hackers H ON H.hacker_id = TBL4.hackerID ORDER BY TBL4.submission_date
Seems like cookies are disabled on this browser, please enable them to open this website
15 Days of Learning SQL
You are viewing a single comment's thread. Return to all comments →
MS SQL SERVER