SQL单查询统计温度表极值及对应出现次数的语法问题
SQL语法正确性确认
你调整后的多子查询合并统计SQL语法逻辑完全符合标准SQL规范,可正常返回目标字段。
原始报错原因
你最初的写法触发报错的核心问题是别名与计算逻辑的顺序不符合SQL语法规则:SQL中定义返回列的固定语法为[计算表达式/子查询] AS [自定义别名],你最初写反为[别名] AS [子查询],因此数据库返回语法错误。
优化方案(可选)
你的现有正确写法逻辑通顺,但会多次扫描全表计算温度极值,数据量较大时可改用单次扫描的写法,性能更优,兼容多数数据库的参考代码如下:
WITH temp_extremes AS ( SELECT MIN(Temperature_C) AS min_val, MAX(Temperature_C) AS max_val FROM TestDataExcel1 ) SELECT min_val AS Min_Temp, SUM(CASE WHEN Temperature_C = min_val THEN 1 ELSE 0 END) AS Count_Min_Temp, max_val AS Max_Temp, SUM(CASE WHEN Temperature_C = max_val THEN 1 ELSE 0 END) AS Count_Max_Temp FROM TestDataExcel1, temp_extremes
内容的提问来源于stack exchange,提问作者Swati Sarangi
相关产品推荐
相关产品推荐

