繁体   English   中英

Oracle SQL单列

[英]Oracle SQL single distinct column

我想从下面带有最新日期的示例表中为每个不同的名称获取一条记录。

我希望查询的结果能够给出:

Mark    Checked_in  04-AUG-15  Blue
Dan     Checked_in  08-JUL-15  Yellow 

表格示例:

Name    Action      Date       Color
Mark    Checked_in  04-AUG-15  Blue
Mark    Checked_in  02-AUG-15  Black
Dan     Checked_in  02-JUL-15  Orange
Dan     Checked_in  08-JUL-15  Yellow
WITH WithRN as (SELECT Name
        , Action
        , "Date"
        , Color
        , row_number() over (partition by Name order by "Date" desc) as RN
    FROM tableName)
SELECT Name, Action, "Data", Color
FROM WithRN
WHERE RN = 1

分析功能通常会更好,然后通过聚合连接到自身。

使用内联视图生成包含唯一值和最大日期值的子集。在这里,我假设使用Name,然后将其重新连接到基集以产生所有所需的列,并且仅生成有问题的记录max(日期)。

SELECT A.Name, A.Action, A.Date, A.Color
FROM tableName A
INNER JOIN (SELECT name, max(date) MDate from tableName group by name) B
 on A.Name = B.Name and A. Date = B.MDate

假设每个名称的日期都是唯一的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM