【发布时间】:2015-04-28 12:18:27
【问题描述】:
我有三个表,这样连接
[播放列表].DBI_ID =1:1= [SUB_FILES].SBF_PLY_ID =*:1= [STL].DBI_ID
从这个数据库中,我可以获取一些数据:
SELECT
PLAYLIST.dbi_id as PLY_ID,
SUB_FILES.dbi_id as SBF_ID,
SUB_FILES.dbi_created_time as SBF_CREATED,
STL.dbi_id as STL_ID
FROM PLAYLIST, SUB_FILES, STL
WHERE (PLAYLIST.ply_automation_id = 'F0117705'
OR PLAYLIST.ply_automation_id = 'F0117707')
AND (SUB_FILES.sbf_ply_id = PLAYLIST.dbi_id)
AND (SUB_FILES.sbf_stl_id = STL.dbi_id)
PLAYLIST.ply_automation_id = ... 条件仅用于测试。最后,我将对整个 PLAYLIST 表运行查询。
我不知道如何只获取每个不同 STL_ID 值的 SBF_CREATED 日期最小的记录。
换句话说,我只想取回 PLY_ID 的 14.604(在 STL_ID = 5.596 的两条记录中具有最小的 SBF_CREATED)和 14.747(在 STL_ID = 5.642 的所有四条记录中具有最小的 SBF_CREATED)的数据。
有问题的数据库是 Firebird 2.1,但如果可能的话,我对通用 SQL 答案感兴趣。
【问题讨论】:
-
什么版本的火鸟?
-
2.1,但如果可能的话,我对通用 SQL 答案感兴趣
标签: sql select firebird greatest-n-per-group