【发布时间】:2012-02-12 06:40:16
【问题描述】:
我有一个存储 zone_id 的表。有时区域 ID 在数据库中是两次。我编写了一个查询来仅显示表中具有相同 zone_id 的两个或多个条目的条目。
以下查询返回正确的结果:
select *, count(zone_id)
from proxies.storage_used
group by zone_id desc
having count(zone_id) > 1;
但是,如果我按 last_updated 或 company_id 分组,它会返回随机值。如果我不添加 group by 子句,它只显示一个值,如下面的屏幕截图所示。第一个输出显示上面的查询字符串,第二个输出显示相同的查询字符串,没有'group by'行并且只返回一个值:
更正:我是新会员,所以不能直接发图,所以加了减号:http://min.us/m3yrlkSMu#1o
虽然我的查询有效,但我不明白为什么。有人可以帮助我理解为什么 group by 会改变实际输出,而不仅仅是输出分组吗?我正在使用 MySQL。
【问题讨论】: