按id_point与sci_name分组求distance最小值的SQL实现问题
修正后的SQL代码及说明
原代码存在三个语法/逻辑问题:
- 分组查询(GROUP BY)不需要加
DISTINCT,因为GROUP BY本身会基于id_point和sci_name的唯一组合返回结果,加DISTINCT完全多余。 GROUP BY id_point, sci_name,末尾多了个逗号,属于语法错误,会导致SQL执行失败。- 聚合函数
MIN(distance)最好指定别名(比如min_distance),让新表的列名更直观,方便后续使用。
正确的SQL代码如下:
CREATE TABLE sar.test AS SELECT id_point, sci_name, MIN(distance) AS min_distance FROM sar.dist_mam_na GROUP BY id_point, sci_name;
这段代码会按id_point与sci_name的每一组唯一组合进行分组,计算每组对应的最小distance值,最终将结果存入新表sar.test中。
内容的提问来源于stack exchange,提问作者Filipe Dias
相关产品推荐
相关产品推荐

