Вы получаете потоковые вставки с возможными повторяющимися строками (присутствуют уникальный ID + временная метка). Какой шаблон запроса следует использовать для интерактивных запросов, исключающих дубликаты?
Выберите ответ
Нажмите на вариант, чтобы проверить свой ответ.
Правильный ответ: Используйте оконную функцию ROW_NUMBER с PARTITION by unique ID вместе с WHERE row equals 1..
Почему это правильный ответ
Для удаления дубликатов при интерактивных запросах из потоковых вставок, где дубликаты определяются по уникальному ID и временной метке, наиболее эффективным является использование оконной функции ROWNUMBER(). Разделение данных с помощью PARTITION BY uniqueID гарантирует, что нумерация строк будет происходить независимо для каждого уникального идентификатора. Добавление ORDER BY timestamp DESC (или ASC, в зависимости от того, какой дубликат вы хотите сохранить) внутри PARTITION позволяет выбрать самую последнюю (или первую) запись для каждого ID. Затем, фильтрация WHERE rownumber = 1 оставляет только одну, уникальную запись для каждого ID, эффективно удаляя дубликаты. Остальные варианты менее подходят: ORDER BY DESK (вероятно, имелось в виду DESC) и LIMIT 1 вернут только одну строку из всего набора данных, а не уникальные записи для каждого ID. GROUP BY по uniqueID и timestamp в сочетании с SUM не удалит дубликаты, а скорее сгруппирует идентичные строки, что не решает проблему повторяющихся записей, если они имеют одинаковый ID и timestamp. Оконная функция LAG используется для доступа к предыдущей строке в окне и не предназначена для удаления дубликатов таким образом.
Сдайте экзамен — без бесконечного поиска ответов
Получите все проверенные вопросы и объяснения для этого экзамена в одном месте и сэкономьте часы подготовки. 1000+ сертификаций · 20+ языков · начните бесплатно.
Сдайте экзамен быстрее → Карта не требуется