我试图将多个MySQL语句优化为一个语句,但遇到了一个问题。
MySQL查询:
SELECT companyid, COUNT(*) AS total
FROM timesheet
WHERE userId='1'
AND DATEDIFF(MIN(startDate), MAX(endDate)) <= 77
GROUP BY companyid
HAVING total = 11我正在尝试做的是选择所有公司,其中恰好有11条记录存在,并且第一条和最后一条记录是在11周内创建的。我得到的错误是“组函数的无效使用”。
这与MIN(), MAX()和DATEDIFF()部分有关,但我无论如何也搞不懂它!
发布于 2011-08-16 04:24:58
聚合函数需要在HAVING子句中,而不是WHERE子句中。(例如您的DATEDIFF(MIN(startDate), MAX(endDate)) <= 77情况)
考虑应用于分组的记录,以及在分组之前应用于单个记录的情况。
https://stackoverflow.com/questions/7070351
复制相似问题