Sql 解释在没有Groupby的情况下选择max
我看到以下问题,我不明白: 整个查询都可以运行,但是如果我运行子查询,就不会有这样的列Measure.Measure\u date。 请解释一下它是如何工作的? 谢谢 当我试图运行子查询时,它抛出错误:没有这样的列Measure.Measure\u date。但是如果我运行整个查询,它确实可以工作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
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