【发布时间】:2012-03-07 11:36:49
【问题描述】:
我正在尝试对一组值进行分组,但我只想在有变化时显示这些值。
一些示例数据
value | date_loaded |
1 | 2012-03-07 |
1 | 2012-03-06 |
1 | 2012-03-05 |
3 | 2012-03-04 |
4 | 2012-03-03 |
1 | 2012-03-02 |
所以我想显示最新的值,以及它的最早日期,例如
value | date_loaded |
1 | 2012-03-05 |
3 | 2012-03-04 |
4 | 2012-03-03 |
1 | 2012-03-02 |
解决此问题的最佳方法是什么?是否可以做一个if语句?如果值 1 与值 2 不同,+1 表示“改变”?因此我可以按“change1”、“change2”等对值进行分组?
【问题讨论】:
-
嗯,我确实有一个自动生成的行号
-
有什么快乐吗?希望这是有道理的。
-
你能使用像
YYYY-MM-DD这样的明确日期格式吗?我不知道这些是连续的几天还是每个月的第三天。如果那里有更多行(例如1 | 1/03/12),您还可以描述您想要的内容吗?你只关心最新的不重复吗? -
日期格式实际上是日期时间 07/03/2012 12:46:48,但这里使用的日期是 2012 年 3 月 5 日、2012 年 3 月 4 日。我最关心的是何时显示值与之前的值不同,但能够按日期订购将是一个加号。
-
那不是日期时间格式,即英国英语/加拿大等格式。如果您只是说
SELECT datetime_col FROM table,您将不会得到07/03/2012(尽管如果您打印或您的客户端应用程序已根据您的本地设置将其转换为字符串,这可能是您看到的方式)。而且你不应该这样 - 看看我对你的日期意味着什么感到困惑?
标签: sql-server-2005 stored-procedures