基于列值C#或SQL之间的相似性对行进行排序

基于列值C#或SQL之间的相似性对行进行排序,c#,sql,sql-server,linq,grouping,C#,Sql,Sql Server,Linq,Grouping,我有一个按时间序列分割多行的表 ReportId Trade PriceIndex PriceDate Price Row_Number 1 t PriceIndexA 1-Jan-12 0 1 1 t PriceIndexB 16-Jan-12 1 2 1 t PriceIndexB 18-Feb-12 2 3

我有一个按时间序列分割多行的表

ReportId    Trade   PriceIndex  PriceDate   Price   Row_Number
   1             t  PriceIndexA 1-Jan-12    0          1
   1             t  PriceIndexB 16-Jan-12   1          2
   1             t  PriceIndexB 18-Feb-12   2          3
   1             t  PriceIndexB 20-Mar-12   3          4
   2             t  PriceIndexA 2-Jan-12    0          5
   2             t  PriceIndexB 16-Jan-12   1          6
   2             t  PriceIndexB 18-Feb-12   3          7
   2             t  PriceIndexB 20-Mar-12   4          8
我希望能够将每一行从
ReportID
1分组到
ReportID
2 如您所见,报表Id在一天中是唯一的,交易是常见的,但
PriceIndex
PriceDate
Price
中的值从一天移动到另一天

在上面的示例中,我希望组如下

  • 第1行映射到第5行
  • 第2行映射到第6行
  • 第3行映射到第7行
  • 第4行映射到第8行

关于如何解决这个问题,有什么建议吗?

行号()超过(按reportID按PriceDate、Price进行划分),如seq
有帮助吗?谢谢kiril,我确实考虑过,但第一天PriceDate可能是最常见的,第二天可能是最常见的价格。因此,查询必须动态演变。那么,如果您创建两个序列:1个用于
priceDate
,1个用于
Price
。然后,比较这两个,只得到你需要的值。我很难理解这个问题。你能详细说明一下你想如何分组吗?