【发布时间】:2022-01-25 05:32:34
【问题描述】:
我有一个销售表,它在 sales_day 列中以日期格式包含每个销售日期。我需要从这些输入的日期中找到每个月的最大日期。我正在使用 oracle 数据库
【问题讨论】:
-
请给出示例数据
标签: oracle
我有一个销售表,它在 sales_day 列中以日期格式包含每个销售日期。我需要从这些输入的日期中找到每个月的最大日期。我正在使用 oracle 数据库
【问题讨论】:
标签: oracle
您可以group by 月份并使用max 聚合:
select extract(month from sale_day) as month, max(sale_day) maxdate
from sales
group by extract(month from sale_day);
请注意,这将获取所有年份的日期,这可能不是您想要的。 如果您想将行限制在某一年:
select extract(month from sale_day) as month, max(sale_day) maxdate
from sales
where sale_day between TO_DATE('2021-01-01','YYYY-MM-DD') and
TO_DATE('2021-12-31','YYYY-MM-DD')
group by extract(month from sale_day);
【讨论】:
trunc(sale_date, 'mm') 分组(并选择)——这样可以将不同年份的月份分开。然后您可以根据需要在select 子句中对其进行格式化。