我正在使用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
但我不明白我怎麼能得到「價值」。你能指導我嗎?
我正在使用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解決方案:
SELECT * FROM table t
WHERE NOT EXISTS
(SELECT * FROM table WHERE t.id_number = id_number AND date > t.date)
你可以看看在冠軍「組內第一個/最後一個記錄」的問題,你會發現很多其他的選擇。
試試這個:
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
[檢索的最後一個記錄各組]的可能重複(http://stackoverflow.com/questions/1313120/retrieving-the-last-record-in-each-組) – Bulat 2014-09-05 14:16:39