- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有每个产品库存的每周数据。我想按年月分组并获得每个月的第一个值。换句话说,我想获得每个月的期初库存,而不管该月的哪一天。
+------------+---------+
| MyDate | MyValue |
+------------+---------+
| 2018-01-06 | 2 |*
| 2018-01-13 | 7 |
| 2018-01-20 | 5 |
| 2018-01-27 | 2 |
| 2018-02-03 | 3 |*
| 2018-02-10 | 10 |
| 2018-02-17 | 6 |
| 2018-02-24 | 4 |
| 2018-03-03 | 7 |*
| 2018-03-10 | 5 |
| 2018-03-17 | 3 |
| 2018-03-24 | 4 |
| 2018-03-31 | 6 |
+------------+---------+
期望的结果:
+----------------+---------+
| FirstDayOfMonth| MyValue |
+----------------+---------+
| 2018-01-01 | 2 |
| 2018-02-01 | 3 |
| 2018-03-01 | 7 |
+----------------+---------+
我认为这可能行得通,但事实并非如此。
select
[product],
datefromparts(year([MyDate]), month([MyDate]), 1),
FIRST_VALUE(MyValue) OVER (PARTITION BY [Product], YEAR([MyDate]), MONTH([MyDate]) ORDER BY [MyDate] ASC) AS MyValue
from
MyTable
group by
[Product],
YEAR([MyDate]), MONTH([MyDate])
编辑。谢谢。我问题的重点不是如何获得该月的第一天。我知道有不同的技术。
重点是如何获取月份的第一个值(期初股票)。如果有机会一口气拿到收尾的股票——那就太好了。基于 ROW_NUMBER
的答案不允许一次获得收盘库存,需要两次连接。
接受答案后编辑
请将 John Cappelletti 的回答视为公认答案的替代方案:https://stackoverflow.com/a/53559750/1903793
最佳答案
你真的不需要 GROUP BY
如果您选择了窗口函数路线:
SELECT Product, DATEADD(DAY, 1, EOMONTH(MyDate, -1)) AS Month, MyValue
FROM (
SELECT *, ROW_NUMBER() OVER (PARTITION BY Product, DATEADD(DAY, 1, EOMONTH(MyDate, -1)) ORDER BY MyDate) AS rn
FROM t
) AS x
WHERE rn = 1
更新
要获取当月的最后一行,只需执行 UNION ALL <above query>
但将 order by 子句更改为 ORDER BY MyDate DESC
.这将为您提供每个产品月两行。
关于sql - 获取本月第一个日期的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53558982/
时间戳格式: ? 1
本文实例讲述了PHP简单获取上月、本月、近15天、近30天方法。分享给大家供大家参考,具体如下: ?
前言 本文主要介绍的是关于利用python 获取本周,上周,本月,上月,本季的时间,话不多说了,来一起看看实现的方法吧 示例代码: ?
查询当前这周的数据 SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m
以下查询返回正确的结果,但如何更快地获得相同的结果? 目标是输出一个表格,通过总结今天、本周、本月和季度的销售额来跟踪卖家的进度。 SellerID Today
今天 ? 1
查询本日记录 SELECT * FROM messages WHERE CONVERT(Nvarchar, CreateDate, 111) = CONVERT(Nvarchar, GETDATE
您好,我想使用“本周”、“本月”、“今年”从 MySql 表中搜索数据。下面是我的 Controller 代码。我没有获得当前 DATE_SUB(NOW(), INTERVAL 1 WEEK 的任何数
mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法分析总结: 话说有一文章表article,存储文章的添加文章的时间是add_time字段,该字段为int(5)类型的,现需要查询今天
我已经通过if else 构建了长距离或传统方式的过滤代码,我需要使用高级 JavaScript 方法(如 filter、map、reduce)来完成 home.html
我想做的是让 NSDate 今天、昨天、本周、上周、本月、上个月变量准备好进行比较,以便在 UITableView 的 titleForHeaderInSection 上添加标题 我想要的是在下面的代
我是一名优秀的程序员,十分优秀!