Оператор SQL для функции QUERY в Google Таблицах

Я пытаюсь использовать Query, чтобы выделить Make и Model из блока текста на «Sheet2», ссылаясь на более крупный «Sheet1». Также в то же время выясняется средняя цена покупки, а также сколько было куплено в прошлом.

На листе1; Справочная база данных по всем купленным товарам. Если Col1 = Бренд, Col2 = Модель и т. Д. Col5 = Закупочная цена. Здесь предметы одной марки и модели можно было купить в разное время по разным ценам. т.е.

Col1 Col2 ... Col5

Apple iPad3 ... 600 долларов

Apple iPad3 ... 500 долларов

Apple iPad3 ... 400 долларов

Sheet2 - это содержимое каталога поставщика, а Col1 - это описание доступных продуктов.

Пример ячейки (A5) может читать ...

«Новый Apple iPad3 со слегка поврежденной коробкой»

B5 вернет найденный Make search «Apple».

C5 вернет найденный поиск модели "iPad3"

D5 вернет среднюю цену, найденную в поисковом массиве "500 долларов".

E5 вернет количество, которое было найдено "3"

Проблема, с которой я столкнулся сейчас, заключается в том, что я не могу заставить все вышеперечисленное (как Make Model, так и Avg Price and Count) сосуществовать за один проход запроса.

Этот запрос вставляется в B5, его результаты заполняют B5, C5, D5 ...

=QUERY(Sheet1!A:F,"select A,B,F where A<>'' and B<>'' and '"&B5&"' contains A and 
'"&B5&"' contains B limit 1 Label A'', B'', F''")

... вернет Make Model Price (только первый найденный экземпляр). Что нам нужно, так это вышеупомянутое со средним значением и подсчетом.

=QUERY(Sheet1!A:F,"select avg(F),count(F) where A<>'' and B<>'' and '"&A5&"' contains A 
and '"&A5&"' contains B label avg(F)'',count(F)''")

Вышеупомянутое работает при получении среднего и подсчета. Но как только я пытаюсь найти марку и модель, у меня ничего не получается ...

=QUERY(Sheet1!A:F,"select A,B,avg(F),count(F) where A<>'' and B<>'' and 
'"&A5&"' contains A and '"&A5&"' contains B label A'',B'', avg(F)'',count(F)''")

Спасибо заранее.


person user1488934    schedule 28.10.2016    source источник


Ответы (1)


Вам необходимо сгруппировать свои результаты по измерениям, по которым вы собираете статистику.

=QUERY(Sheet1!A:F,
"select A,B,avg(F),
count(F) where A<>'' and B<>'' and '"&A5&"' contains A and '"&A5&"' contains B
group by A,B label A'',B'', avg(F)'',count(F)''"
)
person Robin Gertenbach    schedule 28.10.2016