我想创建下面描述的MonthCount列。我已经创建了ID和日期字段我只是想要一个聪明的方法来计算已经过去的日期数。日期始终是本月的第一个月,但第一个月可能是1月到12月之间的任何月份。
ID Date MonthCount
1 1/2016 1
1 2/2016 2
1 3/2016 3
2 5/2015 1
2 6/2015 2
2 7/2015 3
似乎我记得在某个地方阅读过使用>加入桌子的方法。或者<操作员,但我无法完全回想起这种方法。
答案 0 :(得分:0)
在MySQL中处理此问题的最佳方法是使用变量:
select t.*,
(@rn := if(@id = id, @rn + 1,
if(@id := id, 1, 1)
)
) as rn
from t cross join
(select @rn := 0, @id := -1) params
order by id, date;
答案 1 :(得分:0)
看起来你正在寻找:
select a.id, a.date, b.mindate
from table as a
inner join (
select id, min(date) as mindate
from table
group by id
) as b on (a.id=b.id)
这会给你
ID Date mindate
1 1/1/2016 1/1/2016
1 1/2/2016 1/1/2016
1 1/3/2016 1/1/2016
2 1/5/2015 1/5/2015
2 1/6/2015 1/5/2015
2 1/7/2015 1/5/2015
现在做的功课是弄清楚如何在两个日期之间计算difference