Как извлечь из таблицы покупок данные по тем покупателям, которые покупали только 1 наименование товара?

Ссылка скопирована
1 ответ

Есть гугл-таблица таблица со всеми бронированиями отелей за отчетный период. Как извлечь данные только тех, покупателей, которые покупали только один конкретный отель "id1" (в любом кол-ве покупок), но не покупали другие отели из ассортимента?
Например:

Покупатель Отель Дата бронирования
ООО Орбита id1 01/03/24
ООО Минута id31 06/03/24
ООО Секунда id25 15/03/24
ООО Орбита id39 11/03/24
ООО Час id1 01/03/24

P.S. Пробовал использовать QUERY, но у меня не получилось:(

Дополнительно:

Добавьте пример Таблицы, или за вас это делать? То что вы написали мало понятно.

  • Alexander Ivanov, вот ссылка на таблицу https://docs.google.com/spreadsheets/d/15zwS80m-fK...
  • Показывает всех покупателей с одной покупкой

    =LET(   _data;QUERY(     QUERY(       A1:D;      "select D, B, count(B) group by D, B";1     );     "select Col1, count(Col1) group by Col1";1);   FILTER(_data;CHOOSECOLS(_data;2)=1) )

    =LET( _data;QUERY( QUERY( A1:D; "select D, B, count(B) group by D, B";1 ); "select Col1, count(Col1) group by Col1";1); FILTER(_data;CHOOSECOLS(_data;2)=1) )

    Выводит всех, кто сделал данные заказы со всей информацией

    =LET(   _data;QUERY(QUERY(A1:D;"select D, B, count(B) group by D, B";1);"select Col1, count(Col1) group by Col1";1);   _list;FILTER(CHOOSECOLS(_data;1);CHOOSECOLS(_data;2)=1);   {A1:D1;FILTER(A:D;NOT(ISNA(MATCH(D:D;_list;0))))} )

    =LET( _data;QUERY(QUERY(A1:D;"select D, B, count(B) group by D, B";1);"select Col1, count(Col1) group by Col1";1); _list;FILTER(CHOOSECOLS(_data;1);CHOOSECOLS(_data;2)=1); {A1:D1;FILTER(A:D;NOT(ISNA(MATCH(D:D;_list;0))))} )

    Как извлечь из таблицы покупок данные по тем покупателям, которые покупали только 1 наименование товара?

    Пример по ссылке https://docs.google.com/spreadsheets/d/1KN2SuXbHN5...

    На картинке неверное решение

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Юрий Linux Ответ

    Для извлечения данных из таблицы покупок по тем покупателям, которые покупали только одно наименование товара, можно воспользоваться SQL запросом с использованием оператора GROUP BY и HAVING. Ниже приведен пример запроса на языке SQL, который поможет решить данную задачу:

    SELECT customer_id
    FROM purchases
    GROUP BY customer_id
    HAVING COUNT(DISTINCT item_name) = 1;

    SELECT customer_id FROM purchases GROUP BY customer_id HAVING COUNT(DISTINCT item_name) = 1;

    В данном запросе мы выбираем customer_id из таблицы purchases, затем группируем данные по customer_id с помощью оператора GROUP BY. Далее, с помощью оператора HAVING мы фильтруем результаты таким образом, чтобы выбрать только тех покупателей, которые имеют только одно уникальное наименование товара.

    После выполнения данного запроса, вы получите список customer_id тех покупателей, которые покупали только один товар. Далее можно использовать этот список для дальнейших действий, например, для отображения информации о таких покупателях или для дальнейшего анализа данных.

    Убедитесь, что ваша таблица purchases содержит поля customer_id и item_name, которые соответствуют идентификатору покупателя и наименованию товара соответственно. Если названия полей отличаются, необходимо внести соответствующие изменения в запрос.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно