【发布时间】:2018-12-18 05:38:11
【问题描述】:
我在使用 ONLY_FULL_GROUP_BY 模式时遇到了麻烦(我不想这样做,但我不得不这样做)。 问题是这需要我在 group by 子句中包含一列。这是我需要选择的列(它是时间戳列),但需要按“日、月和年”分组。 像这样:
SELECT COUNT(id) AS howmuch, date_event
FROM mytable AS st
WHERE date_event BETWEEN SUBDATE(CURDATE(), 7) AND NOW()
GROUP BY DAY(date_event), MONTH(date_event), YEAR(date_event)
ORDER BY date_event
但这会引发错误:
'mydb.st.date_event' isn't in GROUP BY
因为 date_event 不在 GROUP BY 中,因为不可能。 如果我将 date_event 添加到分组依据,则查询有效,但从逻辑上讲,它不会返回我想要的内容(我需要知道该数据库表中有多少条目,按天分组。
任何提示如何实现这一点?
谢谢!!
【问题讨论】:
-
如果您按日、月、年对数据进行分组,您不应该也以这种方式选择该数据吗?
-
如果您添加示例数据,请将其放在 sqlfiddle.com 或 db-fiddle.com 上会更好。还提供基于示例数据的 ascii 数据表(文本格式)的预期输出