【发布时间】:2017-10-24 21:12:20
【问题描述】:
我有一张表,其中有几列如下所示:
Cusnbr Name LoadNumber
1 Z 10
1 Z 9
1 Z 8
1 C 7
1 C 6
1 C 5
1 B 4
1 B 3
1 A 2
1 A 1
这只是一个 cusnbr 有数百万个这样的 cusnbr..
我想要像下面这样的输出
Cusnbr Name LoadNumber
1 C 7
1 B 4
1 A 2
为此,我在 sql server 2008 中编写以下查询:
;With x as
(
Select * ,rn=Row_number() over (order by cusnbr,loadnumber) from table
)
select x.* from x left outer join x as y on x.rn=y.rn+1
and x.name<>y.name where y.name is not null
但我在上面的代码中没有得到想要的输出,我得到了最后一个 Z,这也是我不想要的,而且我得到的不规则数据不是我想要的正确格式
任何帮助将不胜感激!
我想要这样但无法获得所需的输出
【问题讨论】:
-
不清楚。你想找到最大的数字吗?
-
不是我想要的最后一个更改行的最大数字
-
列需要排序。您在给出的示例中对哪些列进行了排序?
标签: sql-server row common-table-expression