我总是与 sql 子查询作斗争。例如这个问题的答案:
select userid,
my_date,
...
from
(
select userid,
my_Date,
...
max(my_date) over (partition by userid) max_my_date
from users
)
my_date = max_my_date
为什么不能只是:
select userid,
my_Date,
...
max(my_date) over (partition by userid) max_my_date
from users
where
my_date = max_my_date
我知道这是不正确的,但毕竟第一次选择只是从第二次选择的结果中选择了一些东西,加上my_date = max_my_date
. 在什么样的情况下我应该考虑使用这种子查询(除了正常的in、exist等)?