El documento describe un código de base de datos complejo que calcula los rankings de puntuación de usuario por país y globalmente. El código contiene múltiples subconsultas anidadas que agrupan, clasifican y unen datos de puntuaciones de usuario para devolver los rankings de un usuario específico.
29. SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM score
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
30. SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM score
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM score
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM score
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM score
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM score
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRank
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY t.country_id
ORDER BY t.highScore DESC) AS countryRank,
RANK() OVER (ORDER BY t.highScore DESC) AS globalRan
FROM (
SELECT
user_id,
country_id,
MAX(score) AS highScore
FROM (
SELECT
*
FROM (
SELECT
t.user_id,
t.country_id,
t.highScore,
RANK() OVER (PARTITION BY
ORDER BY t.highScore
RANK() OVER (ORDER BY t.h
FROM (
SELECT
user_id,
country_id,
MAX(score) AS hi
FROM score
WHERE topic_id = 101
GROUP BY user_id, co
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
)
WHERE topic_id = 101
GROUP BY user_id, country_id
) AS t
) AS rt
WHERE
rt.user_id = ?
31. Flujo de una petición
&
Repository
Controller UseCase
Service
Unit test Integration test
Implementation
Acceptance test
I
A
D
*
32. Flujo de una petición
&
Repository
Controller UseCase
Service
Unit test Integration test
Implementation
Acceptance test
I
A
D
40. Sincronización entre sistema legacy y el nuevo
♻
Legacy New
TubiAPIradora
legacy
domain_events
new
replicate_from_legacy
new
domain_events
legacy
replicate_from_new
Publica evento
Replica
Consume
Publica evento
Replica
Consume
Invoca API
9