正确的sql/hql查询(在where子句中聚合)

z4y*_*4ts 4 sql t-sql hql

我想查询如下.查询错误但描述了我的意图.

SELECT name, dateTime, data
FROM Record
WHERE dateTime = MAX(dateTime)
Run Code Online (Sandbox Code Playgroud)

更新:好的.该查询描述的意图不太好.我的错.

我想为每个人选择最新记录.

Mik*_*scu 5

试试这个:

SELECT name, dateTime, data
FROM Record 
WHERE dateTime = SELECT MAX(dateTime) FROM Record
Run Code Online (Sandbox Code Playgroud)

您也可以使用内部联接编写它:

SELECT R.name, R.dateTime, R.data
FROM Record R
  INNER JOIN (SELECT MAX(dateTime) FROM Record) RMax ON R.dateTime = RMax.dateTime
Run Code Online (Sandbox Code Playgroud)

这是相同的,但从不同的角度写

SELECT R.name, R.dateTime, R.data
FROM Record R,
     (SELECT MAX(dateTime) FROM Record) RMax
WHERE R.dateTime = RMax.dateTime
Run Code Online (Sandbox Code Playgroud)