滞后功能中组功能的无效使用

时间:2020-04-17 21:41:31

标签: mysql sql date group-by window-functions

我是SQL的新手,有一个相当简单的查询,但是在尝试使用它时,始终出现错误“组函数的无效使用”。这是我的查询:

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

有人可以解释为什么它不起作用以及如何使它正常运行吗?

1 个答案:

答案 0 :(得分:3)

您的查询引发错误消息:

ER_MIX_OF_GROUP_FUNC_AND_FIELDS:在没有GROUP BY的聚合查询中,SELECT列表的表达式#1包含未聚合的列'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