В данных, используемых в приведенной ниже формуле, столбец C содержит список названий продуктов (они не уникальны, и многие из них пусты); столбец Q содержит категорию для каждого продукта, а столбец F - продажи этого продукта. Если возможно, я бы не хотел публиковать какие-либо фактические данные (поскольку они принадлежат моему работодателю), но я могу смоделировать некоторые фиктивные строки в том же формате, если это будет сочтено необходимым.
Я хочу создать список непустых названий продуктов в определенной категории с наивысшими совокупными продажами, отсортированный в порядке убывания и ограниченный 25 записями.
Следующая формула кажется мне совершенно законной:
=QUERY('Raw Data'!A:Q, "Select C where Q = 'foo' and C != '' group by C order by sum(F) desc limit 25", 1)
Но это не так. Я получаю сообщение об ошибке «CANNOT_GROUP_WITHOUT_AGG». Я обнаружил, что для этой работы мне также нужно выбрать сумму (F), например:
=QUERY('Raw Data'!A:Q, "Select C, sum(F) where Q = 'foo' and C != '' group by C order by sum(F) desc limit 25", 1)
Во-первых, почему это? В документации (находится здесь) говорится, что «Если вы используете предложение group by, то каждый столбец, указанный в предложении select, должен быть либо указан в предложении group by, либо быть заключен в оболочку с помощью функции агрегирования ". Я не понимаю, почему первая формула не подчиняется этому критерию; каждый столбец в select (т.е. только C) указан в предложении group by.
Во-вторых, как мне лучше всего изменить эту формулу (если я вообще могу), чтобы иметь возможность выбирать только C? Если я не делаю ничего плохого (сомнительно, но возможно), есть ли обходной путь для этого, или мне нужно просто с этим справиться?
Этот вопрос и другие подобные, не отвечайте на мой вопрос - я понимаю, что если я хочу выбрать несколько столбцов, как я это делаю во второй приведенной выше формуле, мне нужно предоставить функцию агрегирования, чтобы было ясно, как они должны быть сгруппированы. В этом случае, однако, есть только один столбец - я просто хочу, чтобы он (и только он) был сгруппирован. Что мне здесь не хватает, что не позволяет этого?