gpt4 book ai didi

mysql - 按 "today"、 "in last 7 days"、 "in last month"和 "older"对查询结果进行分组

转载 作者:搜寻专家 更新时间:2023-10-30 20:17:29 26 4
gpt4 key购买 nike

我有一个简单的问题,涉及按日期和一些“叙述”时期对行进行分组。假设我有一个非常简单的文章表。 ID 即 PK、标题和日期。日期列是日期时间/时间戳。

我想以某种方式对我的结果进行分组,以便我可以像这样在 View 中呈现它们

今天写的:

  • 艺术 944
  • 艺术 943

最近 7 天写的:

  • 艺术 823
  • 艺术 743

最近 30 天写的:

  • 艺术 520
  • 艺术 519
  • 艺术 502

年长者:

  • 第 4 条
  • 第 3 条
  • 第 1 条

我能否通过一些 group by 语句在一个查询中实现这一目标?

最佳答案

Gordon 写下这篇文章应该是功劳。但我认为您可能只想附加一个带有适当描述符的列,并可能按照您希望看到的顺序对它们进行排序。

select
title,
case when date = curdate() then 'today'
when date >= curdate() - interval 6 day then 'last 7 days'
when date >= curdate() - interval 29 day then 'last 30 days'
else 'older'
end as bucket,

from ...
order by
case
when date = curdate() then 1
when date >= curdate() - interval 6 day then 2
when date >= curdate() - interval 29 day then 3
else 4
end,
title ...

您的标题似乎没有按字母顺序排列。如果您希望它们按年龄排序,请删除 case 表达式并仅使用日期值。

关于mysql - 按 "today"、 "in last 7 days"、 "in last month"和 "older"对查询结果进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30928156/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com