Последняя дата - Запрос - Google Таблицы - Дублирование

У меня есть таблица со следующими данными:

Column A: Страница страны

Column B: Ссылка на сообщение

Column C: Дата публикации

Я создал следующий запрос, чтобы получить последнюю дату публикации каждого Country Page:

=QUERY('Post Level'!A:C, "select A, max(C) where A<>'#N/A' and A<>'' group by A label max(C) 'Last Posted Date'",1)

Запрос работает отлично. Еще хочу добавить ссылку на последний пост. Поэтому я изменил его на:

=QUERY('Post Level'!A:C, "select A,B max(C) where A<>'#N/A' and A<>'' group by A,B label max(C) 'Last Posted Date'",1)

Эта версия не работает. Я получаю дубликаты записей для каждой страны.

В идеале хотелось бы видеть: Country Page, Last Date Country Posted, Link to last post


person Matt M    schedule 10.04.2018    source источник
comment
ИМХО действительно сложный вопрос. Если бы я столкнулся с этим в SQL, я бы нашел последние опубликованные даты для каждой страны, как и вы, а затем понял, что единственный способ получить соответствующие ссылки - это вернуться к исходным данным с помощью внутреннего соединения на странице страны. = страна из моего запроса и дата = последняя дата из моего запроса. К сожалению, у GS нет внутреннего соединения, хотя вы можете его смоделировать stackoverflow.com/questions/14796620/ ... сложно.   -  person Tom Sharpe    schedule 10.04.2018
comment
Кстати, можно было бы показать нам несколько строк данных, пожалуйста? Никаких обещаний, что это даст ответ, но будет способствовать мыслительному процессу.   -  person Tom Sharpe    schedule 10.04.2018


Ответы (1)


Вот доказательство того, что концепция выполнима:

=ArrayFormula(iferror(vlookup({unique(A:A)&query(A:C, "select max(C) group by A offset 1 label max(C) 'Date'")},{A:A&C:C,B:B},2,false),""))

Итак, я объединяю страну и последнюю дату и использую их в качестве значения поиска, чтобы получить связанную ссылку.

Причина использования Unique вместо запроса для получения списка стран заключается в том, что вы не можете просто указать

select A group by A

У вас должен быть хотя бы один агрегат. Пока unique возвращает страны в том же порядке, что и группа по (что должно быть), это будет работать правильно.

введите здесь описание изображения

person Tom Sharpe    schedule 10.04.2018
comment
Привет, Том, во-первых, спасибо за попытку! Решил вот так (см. После). Проверим вашу версию и обратимся к вам! Спасибо за попытку: =ArrayFormula(VLOOKUP(UNIQUE(FILTER('Post Level'!W2:W,'Post Level'!W2:W<>"")),QUERY(SORT('Post Level'!A2:X,3,false), "select Col23, Col3, Col8"),{2,1,3},0)) - person Matt M; 11.04.2018