We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
with Principal as
(Select hacker_id, submission_date, Count(hacker_id) Over (Partition by L.hacker_id Order by submission_date) as CountP From
(Select Distinct hacker_id, submission_date from Submissions) L)
Select Z.submission_date, Final_Sub, hacker_id, Name From
(Select X.submission_date, Count(X.hacker_id) as Final_Sub
From
(SELECT S1.hacker_id, S1.submission_date FROM
((Select hacker_id, submission_date, CountP from Principal) S1
Inner JOIN
(Select hacker_id, submission_date from Principal) S2
ON S1.hacker_id = S2.hacker_id And S1.submission_date = DATEADD(day, 1, S2.submission_date) and S1.CountP = Datepart(Day,S1.submission_date))
Union
(Select hacker_id, submission_date from Submissions where DATEPART(Day, submission_date) = 1)) X
Group by X.submission_date) Z
Inner Join
(Select Detail_Sub.submission_date, Detail_Sub.hacker_id, Detail_Sub.Count_Sub, Hackers.name From
(Select submission_date, hacker_id, Count(submission_id) as Count_Sub,
Row_Number() Over(Partition by submission_date Order by submission_date, Count(submission_id) Desc, hacker_id) as RowS From Submissions
Group by submission_date, hacker_id) Detail_Sub Inner join Hackers on Detail_Sub.hacker_id = Hackers.hacker_id
Where RowS =1) Y
on Z.submission_date = Y.submission_date
Order by Z.submission_date
Cookie support is required to access HackerRank
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:
with Principal as (Select hacker_id, submission_date, Count(hacker_id) Over (Partition by L.hacker_id Order by submission_date) as CountP From (Select Distinct hacker_id, submission_date from Submissions) L)
Select Z.submission_date, Final_Sub, hacker_id, Name From
(Select X.submission_date, Count(X.hacker_id) as Final_Sub From (SELECT S1.hacker_id, S1.submission_date FROM ((Select hacker_id, submission_date, CountP from Principal) S1 Inner JOIN (Select hacker_id, submission_date from Principal) S2 ON S1.hacker_id = S2.hacker_id And S1.submission_date = DATEADD(day, 1, S2.submission_date) and S1.CountP = Datepart(Day,S1.submission_date)) Union (Select hacker_id, submission_date from Submissions where DATEPART(Day, submission_date) = 1)) X Group by X.submission_date) Z Inner Join (Select Detail_Sub.submission_date, Detail_Sub.hacker_id, Detail_Sub.Count_Sub, Hackers.name From (Select submission_date, hacker_id, Count(submission_id) as Count_Sub, Row_Number() Over(Partition by submission_date Order by submission_date, Count(submission_id) Desc, hacker_id) as RowS From Submissions
Group by submission_date, hacker_id) Detail_Sub Inner join Hackers on Detail_Sub.hacker_id = Hackers.hacker_id Where RowS =1) Y on Z.submission_date = Y.submission_date Order by Z.submission_date