Usted recibe inserciones de streaming con posibles filas duplicadas (ID único + marca de tiempo presente). Para consultas interactivas que excluyen duplicados, ¿qué patrón de consulta debería usar?
Elige una respuesta
Toca una opción para verificar tu respuesta.
Respuesta correcta: Use la función de ventana ROW_NUMBER con PARTITION por ID único junto con WHERE row equals 1..
Por qué esta es la respuesta
La opción correcta es usar la función de ventana ROWNUMBER con PARTITION BY el ID único y luego filtrar WHERE rownumber = 1. Esto asigna un número secuencial a cada fila dentro de cada grupo de IDs únicos, ordenando implícitamente por la marca de tiempo (la fila más reciente tendrá ROWNUMBER = 1 si se ordena descendentemente, o la más antigua si se ordena ascendentemente, dependiendo de cómo se defina el ORDER BY dentro de la ventana). Al filtrar por rownumber = 1, se selecciona solo una instancia de cada ID único, eliminando eficazmente los duplicados para consultas interactivas. Las otras opciones son incorrectas porque: ORDER BY DESC y LIMIT 1 solo devolverían una única fila de todo el conjunto de datos, no una fila única por cada ID. GROUP BY en ID y marca de tiempo junto con SUM no eliminaría duplicados si solo se desea una fila por ID; sumaría valores, pero seguiría mostrando múltiples filas si las marcas de tiempo difieren. La función LAG se usa para acceder a una fila anterior dentro de la misma partición, no para eliminar duplicados seleccionando la fila más reciente o más antigua.
Aprueba tu examen — sin la interminable búsqueda de respuestas
Obtén todas las preguntas y explicaciones verificadas para este examen en un solo lugar, y ahorra horas de preparación. Más de 1,000 certificaciones · Más de 20 idiomas · Empieza gratis.
Aprueba tu examen más rápido → No se requiere tarjeta