我在查询中使用了16个表,并试图通过应用以下新更改来优化查询。因此,我们不能使用group或union子句,因为由于性能问题而无法应用于现有查询。删除条件重复值
我正在寻找通过排名/计数/排数分区意味着行级解决方案,如果可能的话。
select * FROM (
SELECT 'HA' as CODE,0 AS SR FROM DUAL UNION ALL
SELECT 'HA' as CODE,0 AS SR FROM DUAL UNION ALL
SELECT 'OF' as CODE,0 AS SR FROM DUAL UNION ALL
SELECT 'AC' as CODE,1 AS SR FROM DUAL UNION ALL
SELECT 'OF' as CODE,0 AS SR FROM DUAL UNION ALL
SELECT 'OF' as CODE,1 AS SR FROM DUAL UNION ALL
SELECT 'OF' as CODE,1 AS SR FROM DUAL UNION ALL
SELECT 'XY' as CODE,1 AS SR FROM DUAL UNION ALL
SELECT 'XY' as CODE,1 AS SR FROM DUAL UNION ALL
SELECT 'HA' as CODE,1 AS SR FROM DUAL UNION ALL
SELECT 'OF' as CODE,1 AS SR FROM DUAL)
ORDER BY SR
随着上述查询的示例数据欲:
- 保持所有行,其中SR = 0
- 删除SR = 1行,其中代码值中存在(SR = 0)
例如,SR = 1的“AC”行被包括在内,因为不存在SR = 0的“AC”行;并且SR = 1的“HA”行被删除,因为存在SR = 0的“HA”行。
所需输出这样的数据:
HA 0
OF 0
HA 0
OF 0
XY 1
XY 1
AC 1
谢谢Alex。你的答案正在起作用。 – sandip 2014-11-06 13:41:55