【发布时间】:2012-03-21 17:47:27
【问题描述】:
给定下面的示例表,我如何使用纯 MySQL 检索整个组的高低范围?有可能吗?
表:
string low high
=====================
abc 1 10
abc 11 20
def 2 5
def 3 6
基本查询:(显然这不起作用,但会怎样?)
SELECT * from `table` GROUP BY `string`;
如果可能的话,我想通过 MySQL 到达这里:
string low high
=====================
abc 1 20
def 2 6
【问题讨论】:
-
仅供参考,您的查询不起作用,因为它选择了 单个代表行的
min和max列(由 MySQL 或多或少“随机”选择)。如果字段不直接属于 group by 子句,则直接在 group by 语句中选择字段会导致不可预知的结果。您应该始终使用聚合函数。在你的情况下MIN()和MAX()
标签: mysql sql group-by query-optimization