записи, выбранной после GROUP BY запросом типа SELECT id, any(value), max(timestamp) FROM x GROUP BY id? Думаю про argMax(value, timestamp), но не уверен.
смею предположить, что никто не понял, чего вы хотите. any(value), max(timestamp) даст значения, вполне вероятно из разных строк. И с этой парой одновременно может не оказаться ни одной строки. Возможно, вам нужно argMax((value, timestamp), timestamp). Или в каких-то версиях КХ работает просто argMax((value, timestamp)). Но я не уверен, что вы хотите именно это получить
Спасибо, справился через argMax(value, timestamp) с надеждой что CH не будет сильно тормозить если много полей будут использовать эту функцию
что значит много полей? если нужно вытаскивать не только value, но и value_1, ..., то делайте argMax((value, value_1, ...), timestamp) as _array
https://kb.altinity.com/engines/mergetree-table-engine-family/replacingmergetree#last-state
Use case: агрегация по логам системы, хотим вытаскивать поля последних метрик конкретных сервисов. Спасибо за предложение, обязательно попробую
Спасибо, возьму на вооружение!
Обсуждают сегодня