微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQL分组依据和最小值MySQL

如何解决SQL分组依据和最小值MySQL

为了获得正确的关联位置,您需要加入一个子选择,该子选择在外部主表中的距离与子选择中得出的最小距离相匹配的情况下,获得每个代码的最小距离。

SELECT a.code, a.distance
FROM   places a
INNER JOIN
(
    SELECT   code, MIN(distance) AS mindistance
    FROM     places
    GROUP BY code
) b ON a.code = b.code AND a.distance = b.mindistance
ORDER BY a.distance

解决方法

我有以下SQL:

select code,distance from places;

输出如下:

CODE    DISTANCE            LOCATION
106     386.895834130068    New York,NY
80      2116.6747774121     Washington,DC
80      2117.61925131453    Alexandria,VA
106     2563.46708627407    Charlotte,NC

我希望能够仅获取一个代码并获得最近的距离。所以我希望它返回这个:

CODE    DISTANCE            LOCATION
106     386.895834130068    New York,DC

我最初有这样的东西:

SELECT code,min(distance),location
GROUP BY code
HAVING distance > 0 
ORDER BY distance ASC

如果我不想获得与最小距离相关联的正确位置,则最小值显示效果很好。如何获取最小距离(和距离)以及正确的位置(取决于表格中插入内容的顺序,有时您可能会得到纽约距离,但夏洛特位于“位置”)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。