Sql 需要重复记录中的一个记录

Sql 需要重复记录中的一个记录,sql,hana-studio,Sql,Hana Studio,这是表格: 活动表 |订单地点|订单编号|活动编号|活动类型|活动日期| |01 | 1 | 00001 | 1 |日期1| |01 | 1 | 00002 | 1 |日期1| |01 | 1 | 00003 | 2 |日期2| |02 | 1 | 00001 | 1 |日期9| |01 | 2 | 00001 | 1 |日期4| |01 | 2 | 00003 | 2 |日期5| |01 | 2 | 00002 | 3 |日期3| |02 | 2 | 00001 | 1 |日期10| |02

这是表格:

活动表

|订单地点|订单编号|活动编号|活动类型|活动日期|
|01 | 1 | 00001 | 1 |日期1|
|01 | 1 | 00002 | 1 |日期1|
|01 | 1 | 00003 | 2 |日期2|
|02 | 1 | 00001 | 1 |日期9|
|01 | 2 | 00001 | 1 |日期4|
|01 | 2 | 00003 | 2 |日期5|
|01 | 2 | 00002 | 3 |日期3|
|02 | 2 | 00001 | 1 |日期10|
|02 | 2 | 00006 | 2 |日期11|
|02 | 2 | 00018 | 2 |日期11|
|02 | 1 | 00002 | 2 |日期1|
为了唯一性,订单地点和订单号必须在一起,
活动类型1为下单
活动类型2已发送订单
在这种情况下,还有其他一些活动不感兴趣

有一个错误(不知道是怎么发生的)。对于一些订单(订单地点和订单编号),同一订单已在同一天下了两次并解除了两次,但其活动编号不同

我正在尝试获取每个订单的活动类型1和类型2的日期以及订单地点和订单编号

结果应如下所示:

对于已下订单:

|订单地点|订单编号|活动编号|活动类型|活动日期|
|01 | 1 | 00001 | 1 |日期1|
|02 | 1 | 00001 | 1 |日期9|
|01 | 2 | 00001 | 1 |日期4|
|02 | 2 | 00001 | 1 |日期10|
订单解除:

|订单地点|订单编号|活动编号|活动类型|活动日期|
|01 | 1 | 00003 | 2 |日期2|
|02 | 1 | 00002 | 2 |日期12|
|01 | 2 | 00002 | 2 |日期5|
|02 | 2 | 00006 | 2 |日期11|
我不知道如何从结果中排除重复项。这意味着我只需要一行(活动编号最少的行)。

请尝试以下操作:

  ;with cte as(
    select rank() over(order by [Nr of activity] ) as rid , * from TableName
    ) select * from cte where rid=1

MySQL还是sql server?我不知道有什么区别,我需要sql语句:)一旦你知道你是在使用MySQL还是sql server,然后标记正确的产品运行
select@@version
如果结果只是一个数字,它就是MySQL,否则它将显示“Microsoft sql server”的版本您使用的是SAP HANA studio编写的.SQL脚本@等等,它给了我什么,让我看看!嘿,没有
,它看起来确实可以工作,但有一个小问题。活动类型为2的记录数量为
n
。我的调查显示只有两次被标记为dischred。也就是说,该表在过滤之前应该有两条记录的
2*n
,在过滤之后应该有
n
记录。我得到
n-150
记录。有任何建议或意见吗?另一个问题是,我不能加入或结合这个声明到另一个声明,例如Where IN!哦。。如果活动Nr发生变化,RID将发生剧烈变化!当活动的Nr更改为rid时,它接受行数。是正确的,如果rid=1,则表示其不同数据,rid>1表示其重复