Google Spreadsheets: Как запросить страны с максимальным населением по континентам? - PullRequest
0 голосов
/ 01 июля 2018

Допустим, у меня есть таблица с колонками страна, континент и население.

Как я могу использовать функцию QUERY в таблицах Google, чтобы выбрать для каждого континента только страну с наибольшим населением?

В обычном SQL, я думаю, я бы использовал HAVING, но здесь это не вариант.

enter image description here

Ответы [ 4 ]

0 голосов
/ 14 января 2019

В методе QUERY выберите континент, максимум населения и нужно сгруппировать по континенту:

=QUERY(Countries,"select I, max(J) GROUP BY I",1)

Это вернет следующие результаты из таблицы:

Continent       max Population
Africa          173615345
Asia            1385566537
Australia       23342553
Europe          82726626
North America   320050716
South America   200361925
0 голосов
/ 01 июля 2018

Несколько предложений (оба немного длинных), где у меня есть ранг, страна и континент в столбцах A, B и C (извините, мне потребовалось бы слишком много времени, чтобы ввести данные о населении)

Чтобы получить список в порядке убывания ранга:

=ArrayFormula({unique(filter(C:C,C:C<>"")),
vlookup(Query(A:C,"select min(A) where A is not null group by C order by min(A) label min(A) 'Rank'"),A:C,2,false)})

Чтобы получить список в алфавитном порядке континента:

=ArrayFormula({Query(A:C,"select C,min(A) where A is not null group by C label min(A) 'Rank'"),
vlookup(Query(A:C,"select min(A) where A is not null group by C label min(A) 'Rank'"),A:C,2,false)})

Хотя список (я полагаю) будет идти вплоть до Ватикана (население около 1000 человек), в большинстве стран проживает не менее нескольких тысяч человек, поэтому я полагаю, что связи маловероятны: -)

enter image description here


ОБНОВЛЕНИЕ - с данными о населении
enter image description here

0 голосов
/ 02 июля 2018
=SORTN(SORT(G:J,4,0),2^99,2,3,0)
  • Сортировка по численности населения в порядке убывания, если это еще не сделано
  • Удалить дубликаты с помощью SORTN
0 голосов
/ 01 июля 2018

Я предлагаю вспомогательный столбец, скажем K с:

=if(maxifs(J:J,I:I,I2)=J2,"#","")  

в К2 и копируется в соответствии с требованиями, затем:

=query(G:K,"select I,H,J where K is not NULL")
...