Ошибка 1055, выражение № 1 списка ВЫБОРА отсутствует в предложении GROUP BY

#mysql

#mysql

Вопрос:

Я пытаюсь узнать, сколько клиентов, которые пришли напрямую (где маркетинговая среда была бы пустой) на сайт, прежде чем совершать покупку. Идентификатор сеанса — это когда они заходят на сайт и сеанс запущен. Идентификатор посетителя — это его уникальный идентификатор.

 Select
  session_id,
  purchase_time
FROM orders
 where marketing_medium is NULL
 Group by visitor_id; 
  

Ответ №1:

Я не вижу причин даже использовать GROUP BY здесь, по крайней мере, не на основе требований, которые вы нам сообщили. Вместо этого, возможно, вам нужно ORDER BY visitor_id :

 SELECT
    visitor_id,
    session_id,
    purchase_time
FROM orders
WHERE
    marketing_medium IS NULL
ORDER BY
    visitor_id;
  

Ответ №2:

Если вы хотите подсчитать количество клиентов, то вам нужно только COUNT() без GROUP BY :

 select count(visitor_id) counter
from orders
where marketing_medium is null
  

Если вы хотите подсчитать каждого отдельного клиента только один раз, даже если он совершил много покупок, используйте DISTINCT :

 select count(distinct visitor_id) counter
from orders
where marketing_medium is null