0

我想删除从此 sql 返回的重复行:

Select
      *
    From (Select
      Security_Symbol,
      Security_Name,
      date1,
      time1,
      last1,
      Changefromopen,
      percentchangefromopen
    From
      xgdv
    Where
      Security_Symbol In ('abc', 'def', 'ghi')
    Order By
      date1 desc,
      time1 asc) where rownum <= 3

在子查询中使用 distinct 不会删除重复记录。

在子查询中使用 distinct 有什么问题。我如何实现这一目标?

4

2 回答 2

1

如果您有多行具有相同的Security_Symbol/ Security_Name,但结果中的每个组合只需要一行,那么您需要确定所需的数据。您可能需要其他列的范围,如:

Select
  Security_Symbol,
  Security_Name,
  min(date1), max(date1),
  min(time1), max(time1)
  min(last1), max(last1),
  min(Changefromopen), max(Changefromopen),
  min(percentchangefromopen), max(percentchangefromopen)
From
  xgdv
Where
  Security_Symbol In ('abc', 'def', 'ghi')
Group by
  Security_Symbol, Security_Name
Order By
  Security_Symbol, Security_Name

这可能不是您正在寻找的解决方案;如果不是,请指定您感兴趣的其他列的数据。例如:任何随机行,平均值,...

于 2013-03-30T09:09:09.460 回答
0

尝试在子查询中调用基表中的所有列 - 哪些行相似可能更明显。您还可以尝试向子查询添加排名以突出显示重复的行。这将是找出造成欺骗的原因的起点。

于 2013-03-31T19:50:06.240 回答