我想删除从这个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有什么问题。我如何实现这一目标?
答案 0 :(得分: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
这可能不是您正在寻找的解决方案;如果不是,请指定您感兴趣的其他列的数据。例如:任意随机行,平均值,......
答案 1 :(得分:0)
尝试调用子查询中基表的所有列 - 可能更明显哪些行是相似的。您还可以尝试向子查询添加排名以突出显示重复的行。这将是解决造成欺骗的原因的起点。