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.
-- camino -> Colegio -> encuesta -> desafios, para cada colegio hay una encuesta y para cada encuesta uno o multiples desafios (Union de tablas por un dato en comun)
JOIN Colleges uc ON c.contest_id=uc.contest_id -- Colegio -> encuesta
JOIN Challenges ch ON uc.college_id=ch.college_id -- encuesta -> desafio
LEFT JOIN (SELECT challenge_id,
SUM(total_submissions) total_submissions,
SUM(total_accepted_submissions) total_accepted_submissions
FROM Submission_Stats GROUP BY challenge_id) ss ON ch.challenge_id = ss.challenge_id -- Agrupar por challenge id, uniendo filas de desafios con submissions
LEFT JOIN (SELECT challenge_id,
SUM(total_views) total_views,
SUM(total_unique_views) total_unique_views
FROM View_Stats GROUP BY challenge_id) vs ON ch.challenge_id=vs.challenge_id -- Agrupar por challenge id, uniendo filas de desafios con la de envios
GROUP BY c.contest_id, c.hacker_id, c.name -- Agrupar segun como se relacionen
-- Filtrar los grupos donde almenos tengan un campo que no este vacio
HAVING SUM(IFNULL(ss.total_submissions,0)+IFNULL(ss.total_accepted_submissions,0)
+IFNULL(vs.total_views,0)+IFNULL(vs.total_unique_views,0))>0
ORDER BY c.contest_id;
Cookie support is required to access HackerRank
Seems like cookies are disabled on this browser, please enable them to open this website
Interviews
You are viewing a single comment's thread. Return to all comments →
SELECT c.contest_id, c.hacker_id, c.name,
-- PARAMETROS GENERALES QUE DEBE SEGUIR EL RESTO DEL CODIGO, SIEMPRE QUE
FROM Contests c
-- camino -> Colegio -> encuesta -> desafios, para cada colegio hay una encuesta y para cada encuesta uno o multiples desafios (Union de tablas por un dato en comun)
JOIN Colleges uc ON c.contest_id=uc.contest_id -- Colegio -> encuesta JOIN Challenges ch ON uc.college_id=ch.college_id -- encuesta -> desafio
LEFT JOIN (SELECT challenge_id, SUM(total_submissions) total_submissions, SUM(total_accepted_submissions) total_accepted_submissions FROM Submission_Stats GROUP BY challenge_id) ss ON ch.challenge_id = ss.challenge_id -- Agrupar por challenge id, uniendo filas de desafios con submissions
LEFT JOIN (SELECT challenge_id, SUM(total_views) total_views, SUM(total_unique_views) total_unique_views FROM View_Stats GROUP BY challenge_id) vs ON ch.challenge_id=vs.challenge_id -- Agrupar por challenge id, uniendo filas de desafios con la de envios
GROUP BY c.contest_id, c.hacker_id, c.name -- Agrupar segun como se relacionen
-- Filtrar los grupos donde almenos tengan un campo que no este vacio HAVING SUM(IFNULL(ss.total_submissions,0)+IFNULL(ss.total_accepted_submissions,0) +IFNULL(vs.total_views,0)+IFNULL(vs.total_unique_views,0))>0 ORDER BY c.contest_id;