Oracle11g 获取最新更新日期&;它';s相关信息

Oracle11g 获取最新更新日期&;它';s相关信息,oracle11g,Oracle11g,我有这个疑问。希望有人能帮忙 下表所示为国家/地区费率 ID Country Date Rate ---------------------------------- 1. CANADA 03/02/2009 0.78 2. UK 12/07/2009 1.23 3. UK 03/02/2010 0.12 4. USA 05/11/2010 1.63 5. CA

我有这个疑问。希望有人能帮忙

下表所示为
国家/地区费率

 ID     Country   Date        Rate 
 ----------------------------------     
 1.    CANADA  03/02/2009    0.78
 2.    UK      12/07/2009    1.23
 3.    UK      03/02/2010    0.12
 4.    USA     05/11/2010    1.63
 5.    CANADA  03/02/2010    0.52
 6.    USA     05/02/2011    0.98
我想知道最新的日期和与it相关的价格

结果应该是这样的:

Country   Date        Rate 
---------------------------    
UK      03/02/2010    0.12
CANADA  03/02/2010    0.52
USA     05/02/2011    0.98
CREATE TABLE RATES
(
  COUNTRY  VARCHAR2(10),
  DT       DATE,
  RATE     NUMBER
)
所以我想要SQK来得到这个结果

Thanx

Malikaa-

假设您的表的结构如下所示:

Country   Date        Rate 
---------------------------    
UK      03/02/2010    0.12
CANADA  03/02/2010    0.52
USA     05/02/2011    0.98
CREATE TABLE RATES
(
  COUNTRY  VARCHAR2(10),
  DT       DATE,
  RATE     NUMBER
)
然后您可以运行此命令以获得答案:

SELECT O.COUNTRY, O.RATE, O.DT
FROM RATES O JOIN
(
    SELECT COUNTRY, MAX(DT) DT
    FROM RATES
    GROUP BY COUNTRY) I
ON O.COUNTRY = I.COUNTRY
AND O.DT = I.DT
希望这有帮助


-CJ

这里有两种替代方法。第一个稍微整洁一点,第二个稍微快一点,这两个选项都附带了按您想要的顺序排列的额外列;)

您应该注意,当同一天某个国家的利率超过一个时,所有三个(这两个和CJ的代码)都将返回太多行,但适用于您提供的数据集