我是SQL的新手,有一个相当简单的查询,但是在尝试使用它时,始终出现错误“组函数的无效使用”。这是我的查询:
select CreateDate as date,
count(*) as count,
lag(count(*), 1) OVER (order by CreateDate) as Previous
from contacts
有人可以解释为什么它不起作用以及如何使它正常运行吗?
答案 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