Sql 解释在没有Groupby的情况下选择max

Sql 解释在没有Groupby的情况下选择max,sql,Sql,我看到以下问题,我不明白: 整个查询都可以运行,但是如果我运行子查询,就不会有这样的列Measure.Measure\u date。 请解释一下它是如何工作的? 谢谢 当我试图运行子查询时,它抛出错误:没有这样的列Measure.Measure\u date。但是如果我运行整个查询,它确实可以工作 SELECT Max(measure_time) FROM Measure f WHERE f.measure_date= Measure.measure_date AND f.m

我看到以下问题,我不明白: 整个查询都可以运行,但是如果我运行子查询,就不会有这样的列Measure.Measure\u date。 请解释一下它是如何工作的? 谢谢

当我试图运行子查询时,它抛出错误:没有这样的列Measure.Measure\u date。但是如果我运行整个查询,它确实可以工作

SELECT Max(measure_time) FROM Measure f 
    WHERE f.measure_date= Measure.measure_date 
    AND f.measure_date >= date('2021-01-01')  
    AND f.measure_date <= date('2021-20-01')
这是我的数据:

您指的是此子查询:

WHERE measure_time =(SELECT Max(f.measure_time)
                     FROM Measure f 
                     WHERE f.measure_date = Measure.measure_date AND
                           f.measure_date >= date('2021-01-01') AND
                           f.measure_date <= date('2021-20-01')
                    ) 

从概念上讲,这意味着为外部查询中的每一行运行子查询。当然,SQL优化器确定实际的执行计划,这可能与概念上的理解不同。

您得到了什么错误?我认为-如果f.measure\u date=measure.measure\u date是一个问题,那么您在这里只有一个表,所以请度量。不正确。请回答您的问题,并将收到的完整错误消息添加为文本,请不要在上面添加屏幕截图。谢谢。您的回答有助于我完全理解。谢谢:。
WHERE measure_time =(SELECT Max(f.measure_time)
                     FROM Measure f 
                     WHERE f.measure_date = Measure.measure_date AND
                           f.measure_date >= date('2021-01-01') AND
                           f.measure_date <= date('2021-20-01')
                    ) 
WHERE f.measure_date = Measure.measure_date