2016-06-03 4 views
-1

У нас есть 3 столбца в таблице. Идентификатор, временная метка и комментарии. один идентификатор может иметь несколько комментариев, связанных с ним. У нас есть требование подобрать первые три комментария на основе временной метки в формате desc, что мы сделали с помощью функции Rank(). Следующее требование состояло в том, чтобы объединить эти 3 верхних комментария с идентификатором с разделением труб. Для этого мы использовали concat_ws. Однако мы видим, что эти комментарии не конкатенируются с порядковым номером времени. Они получают случайное сцепление.строка заказа до конкатенации в улье

Есть ли способ сделать конкатенацию, это тот же порядок для desc timestamp order без использования пользовательского udf?

+0

Не могли бы вы отправить запрос, который вы используете в настоящее время? – gobrewers14

ответ

0

Используйте row_number() over (partition by id order by timestamp desc) и дайте число для трех первых комментариев для каждого идентификатора. Затем напишите запрос для конкатенации комментариев на основе rno, который вы указали ранее.