在线求一SQL语句

victory610 2020-11-15 12:26:04
我有一个订单数量表,出不多有近10年每天的数据,我想获取每年每月最后一天的订单量信息。
请问大神,这个SQL语句怎么写,谢谢。

假设原始数据如下:
订单日期 订单数量
2018-01-01 655
2018-01-02 1120
2018-01-31 2150
2019-09-01 3000
2019-09-02 4100
2019-09-30 5600
2020-02-01 7000
2020-02-02 6200
2020-02-29 8100
2020-10-31 11200

我需要得到下列数据:
订单日期 订单数量
2018-01-31 2150
2019-09-30 5600
2020-02-29 8100
2020-10-31 11200
...全文
63 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwfxgm 2020-11-18
  • 打赏
  • 举报
回复
引用 1 楼 RINK_1 的回复:

SELECT * 
FROM TABLE A
WHERE NOT EXISTS (SELECT 1 FROM TABLE WHERE YEAR(A.订单日期)=YEAR(订单日期) AND MONTH(A.订单日期)=MONTH(订单日期) AND DAY(订单日期)>DAY(A.订单日期))

--或者

SELECT *
FROM
(SELECT *,ROW_NUMBER() OVER (PARTITION BY YEAR(订单日期),MONTH(订单日期) ORDER BY DAY(订单日期) DESC) AS SEQ FROM TABLE) AS A
WHERE SEQ=1
RINK_1 2020-11-15
  • 打赏
  • 举报
回复

SELECT * 
FROM TABLE A
WHERE NOT EXISTS (SELECT 1 FROM TABLE WHERE YEAR(A.订单日期)=YEAR(订单日期) AND MONTH(A.订单日期)=MONTH(订单日期) AND DAY(订单日期)>DAY(A.订单日期))

--或者

SELECT *
FROM
(SELECT *,ROW_NUMBER() OVER (PARTITION BY YEAR(订单日期),MONTH(订单日期) ORDER BY DAY(订单日期) DESC) AS SEQ FROM TABLE) AS A
WHERE SEQ=1

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧