SQL:获取第一个值
SQL: Get the first value
我有两个表:
患者(ID、名字、姓氏...)
记录(ID、日期、时间、版本)
我想(内部)加入这些表,所以我有患者数据的记录,但在版本列中,我总是想要为患者记录的第一个值(所以日期和时间取决于患者 (id))。我尝试使用子查询,但 HANA 不允许在子查询中使用 ORDER-BY 或 LIMIT 子句。
如何使用 SQL 实现此功能? (哈娜 SQL)
在此先致以诚挚的问候和感谢。
HANA 支持 window 函数,因此您可以加入选择第一个版本的派生 table:
select p.*, r.id, r.date, r.time, r.version
from patients p
join (
select id, date, time, version, patient_id,
row_number() over (partition by patient_id order by version) as rn
from records
) r on p.id = r.patient_id and r.rn = 1
以上假设 records
table 有一列 patient_id
包含该记录所属的患者 table 的 ID。
我有两个表:
患者(ID、名字、姓氏...)
记录(ID、日期、时间、版本)
我想(内部)加入这些表,所以我有患者数据的记录,但在版本列中,我总是想要为患者记录的第一个值(所以日期和时间取决于患者 (id))。我尝试使用子查询,但 HANA 不允许在子查询中使用 ORDER-BY 或 LIMIT 子句。
如何使用 SQL 实现此功能? (哈娜 SQL)
在此先致以诚挚的问候和感谢。
HANA 支持 window 函数,因此您可以加入选择第一个版本的派生 table:
select p.*, r.id, r.date, r.time, r.version
from patients p
join (
select id, date, time, version, patient_id,
row_number() over (partition by patient_id order by version) as rn
from records
) r on p.id = r.patient_id and r.rn = 1
以上假设 records
table 有一列 patient_id
包含该记录所属的患者 table 的 ID。