我想获取类(class)的最后注册日期,但我想知道记录的 id。由于 MAX 是一个函数,我必须使用 id 分组,我不希望这样做,因为结果非常不同(从每个 id 只有一个记录到每个记录)。
管理这样的查询的方法是什么?:
SELECT id, MAX(registration_date) AS registration_date
FROM courses;
因为它给出了一个错误,我必须这样做来避免它:
SELECT id, MAX(registration_date) AS registration_date
FROM courses
GROUP BY id;
而且我不想要最后一个的结果。
最佳答案
您可以使用 rank()
窗口函数:
SELECT id
FROM (SELECT id, RANK() OVER (ORDER BY registration_date DESC) AS rk
FROM courses)
WHERE rk = 1
关于sql - 是否可以使用不在分组依据(SQL)中的列获得函数结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26423162/