【问题标题】:How to get a simple field with grouped by field?如何获得按字段分组的简单字段?
【发布时间】:2014-09-05 13:35:43
【问题描述】:

我使用的是 Oracle 11G。

我在数据库中有下表:

我想为每个最近的 Id_Number 获取字段“值”。 例如,从上表中,我想获取行:

24/08 1 8

03/09 2 95

我设法使用以下方法获取每个最新 Id_Number 的日期和 Id_Number:

select max(Date), Id_Number from table group by Id_Number

但我不知道如何获得“价值”。你能指导我吗?

【问题讨论】:

标签: sql oracle11g group-by


【解决方案1】:

这是我认为的标准 SQL 解决方案:

SELECT * FROM table t
WHERE NOT EXISTS 
 (SELECT * FROM table WHERE t.id_number = id_number AND date > t.date) 

您可以查找标题中带有“组内第一条/最后一条记录”的问题,您会发现很多其他选项。

【讨论】:

    【解决方案2】:

    试试这个:

    select t1.*
      from YOUR_TABLE t1
         , (
            select min(date) dat
                 , id_number 
              from YOUR_TABLE 
             group by id_number
           ) t2
     where t1.date = t2.dat
       and t1.id_number = t2.id_number
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-08
      • 1970-01-01
      • 1970-01-01
      • 2019-01-14
      • 1970-01-01
      • 2021-12-10
      • 2013-03-31
      • 1970-01-01
      相关资源
      最近更新 更多