【问题标题】:Retrieving all posts count with date sorts date wrong检索所有帖子计数与日期排序日期错误
【发布时间】:2021-01-24 17:06:03
【问题描述】:

我正在尝试制作一个图表,其中 X 轴是日期(过去 14 天),图表本身显示了该日期的帖子数。但是,它从 1. oct -> 9. oct 开始,然后继续 25. sep -> 30.sep

我的 SQL:

SELECT DATE_FORMAT(created_at, "%d. %b") AS date, count(*) as count 
FROM posts
WHERE created_at BETWEEN NOW() - INTERVAL 14 DAY AND NOW()
Group by date
ORDER BY date ASC

问题图片:https://i.imgur.com/d8AIRu6.png

【问题讨论】:

    标签: mysql sql string count sql-order-by


    【解决方案1】:

    问题在于order by 子句中的date 引用了select 子句中定义的别名,即日期的字符串表示形式。您不能使用它对结果集进行任意排序。

    这是一种解决方法:将另一个表达式添加到具有 date 数据类型的 group by 子句 - 然后您可以使用它来对结果进行排序:

    SELECT date_format(created_at, '%d. %b') AS date, count(*) as count 
    FROM posts
    WHERE created_at BETWEEN NOW() - INTERVAL 14 DAY AND NOW()
    Group by date, date(created_at)
    ORDER BY date(created_at) ASC
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-20
      • 1970-01-01
      • 1970-01-01
      • 2020-06-02
      • 1970-01-01
      • 2018-02-04
      相关资源
      最近更新 更多