当only_full_group_by激活时,正确的查询如何?
SELECT
MAX(DATE (`date`)) AS `date_full`,
WEEKDAY(`date`) AS `date_week`,
COUNT(`id`) AS `visits`
FROM `xxx_visits_stats`
WHERE YEAR(`date`) = YEAR("2017-01-01")
GROUP BY `date_week`
ORDER BY `date` DESC
没有(禁用)only_full_group_by 它可以工作!
最佳答案
我认为您的问题是由于您按 GROUP BY 中未提及的列进行排序,而且也不是聚合。
试试这个:
SELECT MAX(DATE(`date`)) AS `date_full`,
WEEKDAY(`date`) AS `date_week`,
COUNT(`id`) AS `visits`
FROM `xxx_visits_stats`
WHERE YEAR(`date`) = YEAR("2017-01-01")
GROUP BY WEEKDAY(`date`)
ORDER BY 1 DESC
这种形式的 ORDER BY
表示使用 SELECT 子句中的第一列进行排序。
关于MySQL : only_full_group_by multiple date isn't in group by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43902803/