MySQL : only_full_group_by multiple date isn't in group by

标签 mysql group-by

当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/

相关文章:

mysql - 将 drupal 数据库从 mysql 转换为 postgresql?

sql-server - 在递归 SQL 查询上对多个父/子进行排序

mysql - 使用 GROUP BY 和 ORDER BY 时,如何正确索引选择多个字段的查询?

java - 如何将数据库连接信息放到一个单独的文件中?

mysql - 在 mysql 中,NOT EXISTS 函数的性能比 UNION 高得多吗?

c# - ExecuteReader() 后未更新输出参数

sql - 如何在嵌套查询中两次避免 "group by"

mysql - mysql中如何统计不同范围内的数据并按月分组?

java - 如何在Java中将group-by对象列表转换为html无序列表?

MySQL Workbench 在 Windows 上启动时崩溃