【问题标题】: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