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。