2.5Kпросмотров
77.0%от подписчиков
20 февраля 2026 г.
📷 ФотоScore: 2.8K
max_by/min_by Узнала про прикольные функции, они заменяют оконку/CTE на одно поле Пример - вывести имя сотрудника с максимальным стажем по каждому департаменту result = df.groupBy("department").agg( F.max_by("name", "years")
) И все! Не надо никаких row_number = 1 В Spark SQL можно еще и фильтр набросить: spark.sql(""" select department, max_by(name, years) filter (where name is not null) from employees group by department
""") А в Trino еще можно собрать массив топ-n в убывающем порядке: select department, max_by(name, years) AS top_employee, max_by(name, years, 2) AS top_2_employees
from employees group by department Аналог в ClickHouse - argMax @data_engineerette