запросом из таблицы записи, у которых значение поля равно min/max значению этого поля?
1. найти min max 2. выбрать
Забыл уточнить. Одним запросом.
можно через WITH в два прохода. можно черех массивы.
можно argMin argMax попробовать
а можно поподробнее п.2?
Самый тупой вариант select * from table where column = (select min(column) from table)
хотя это только одну запись вернет
select min(v) minv, max(v) maxv, (arrayJoin(arrayFilter (x-> x.2=minv or x.2=maxv, groupArray( (k,v) ) as rowtuple) ) as filteredRowTuple).1 as kfiltered, filteredRowTuple.2 as vfiltered from ( select k, v from ( select ['a','b','c', 'd','e'] k, [1,2,-1,0,5] v ) array join k, v ) ;
если ИО не тормозной, лучше пробежатся и собрать минмакс сначала, а потом уже отфильтровать строки. иначе вы прочтете кучу не нужных данных колонок т.е. если у вас select <100 columns> - используйте WITH + PREWHERE
Спасибо! Сравню.
Обсуждают сегодня