Таблица Google Query Error - столбец не существует
Еще одна проблема с Google Spreadsheet API. Я пытаюсь использовать функцию QUERY()
, чтобы получить из нашей базы данных всех клиентов из Варшавы. Google API, однако, похоже, имеет большие проблемы с анализом моего запроса. Я проверил это несколько раз, и все в порядке. Пробные точки с запятой, разные апострофы и имена столбцов - все равно не получится. Я набираю этот код в ячейке листа:
=QUERY(IMPORTRANGE("0ArsOaWajjzv9dEdGTUZCWFc1NnFva05uWkxETVF6Q0E"; "Kuchnia polska!A3:G40"); "select B where E contains 'Warszawa'")
И получи ошибку вот так:
Invalid query: Column [E] does not exist in table.
И я на 110% уверен, что столбец существует, а ключ электронной таблицы в порядке. ;)
Ответы
Ответ 1
Если вы используете функцию Query
с прямой ссылкой на прямоугольник ячеек, вы используете заглавные буквы для обозначения столбцов. Однако, если вы используете Query
для вывода формулы массива, например возврата из ImportRange
, вам вместо этого нужно использовать Col1
, Col2
,... для обозначения столбцов. Итак, ваш пример строки запроса нужно будет прочитать:
"select Col2 where Col5 contains 'Warszawa'"
Рабочий пример:
=Query(ImportRange("0AtEH2Kw9zfIodEQ2dFNFam9sdEFEZlVnNEV3ZEZMZEE", "data!A:G"), "select Col3, count(Col4) group by Col3 order by count(Col4) desc label count(Col4) 'count'")
Я понятия не имею, почему это не просто позволяет вам использовать имена из строки заголовка.
Ответ 2
В качестве альтернативы вы можете попробовать функцию FILTER
в этом случае, и тогда вам не нужно беспокоиться о SQL. :)
=FILTER(ImportRange("0ArsOaWajjzv9dEdGTUZCWFc1NnFva05uWkxETVF6Q0E"; "Kuchnia polska!B3:B40"); ImportRange("0ArsOaWajjzv9dEdGTUZCWFc1NnFva05uWkxETVF6Q0E"; "Kuchnia polska!e3:e40")="Warszava")
Хотя я признаю, что это не так красиво из-за двух функций importRange
.
Надеюсь, это помогло в любом случае.