Илья, Если включить зануду то scala обертка над java, и овер много разработчиков на scala не соприкасались с java. В этом сравнении kotlin куда более самостоятельный язык.
По себе знаю, только рабочая необходимость позволяет концентрироваться на одной тематике, иначе
я то и дело бросаюсь из крайности в крайность, от книг по C к книгам по радио-электронике - далее к книгам по хакингу - далее к книгам по архитектуре ЭВМ
select tab1.id, tab1.city, tab1.name, tab1.years from docs as tab1 inner join (select city, count(city) as count from docs group by city order by count(*) desc) as tab on tab1.city = tab.city order by tab.count desc;
on принимает 4 аргумента
1. бинарная функция, которая из 2 элементов b получает элемент с (+)
2. функция которая из элемета a получает b (helper)
3 - 4 два элемента a (pair of pair)
результатом on является c
a это пара пар
b int (первый элемент первой пары)
с тоже int