簡體   English   中英

Oracle:子查詢的替代方法

[英]Oracle: Alternative to sub-query

是否有替代方法可以在不使用子查詢的情況下重新編寫以下oracle 查詢

SELECT COL1,COL2 FROM TABLE WHERE COL2 IN (SELECT MAX(COL2) FROM TABLE)

編輯 :只有1個表具有COL1和COL2,其中具有COL2最大值的行是預期輸出

SELECT COL1,COL2 
FROM TABLE
ORDER BY COL2 DESC
FETCH FIRST 1 ROW WITH TIES

這個也應該起作用:

SELECT MAX(COL1) KEEP (DENSE_RANK LAST ORDER BY COL2) as COL1,
    MAX(COL2) as COL2 
FROM TABLE;

使用PARTITION鍵按如下所示找出col1的最大col2:

select COL1, COL2 from (
select COL1, COL2, ROW_NUMBER() over(PARTITION BY COL1 ORDER BY COL2 desc) row_num  from TABLE 
 )  where row_num=1;

假設可以將COL1用作候選鍵-

SELECT T1.COL1,
  T1.COL2
FROM TABLE1 T1
INNER JOIN TABLE1 T2
ON (T1.COL1  = T2.COL1
AND T1.COL2 >= T2.COL2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM