Неправильное использование групповой функции в функции задержки - PullRequest
2 голосов
/ 18 апреля 2020

Я новичок в SQL и у меня довольно простой запрос, но я продолжаю получать сообщение об ошибке "Недопустимое использование групповой функции" при попытке его использовать. Вот мой запрос:

select CreateDate as date,
 count(*) as count,
 lag(count(*), 1) OVER (order by CreateDate) as Previous 
from contacts

Может кто-нибудь объяснить, почему это не будет работать и как я могу заставить его работать должным образом?

1 Ответ

3 голосов
/ 18 апреля 2020

Ваш запрос вызывает сообщение об ошибке:

ER_MIX_OF_GROUP_FUNC_AND_FIELDS: В агрегированном запросе без GROUP BY выражение # 1 из списка SELECT содержит неагрегированный столбец 'test.contacts.createdate'; это несовместимо с sql_mode=only_full_group_by

Это не имеет ничего общего с lag(). В вашем запросе просто отсутствует предложение group by:

select 
    CreateDate as date,
    count(*) as count,
    lag(count(*), 1) over(order by CreateDate) as previous 
from contacts
group by createdate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...