【发布时间】:2015-04-30 09:15:42
【问题描述】:
我有一个问题:
select lr2.event_id as ce
from data_requests as lr2
group by lr2.event_id,
返回 88 行。然后我尝试了以下方法:
select count(lr2.event_id) as cc, lr2.event_id as ce
from data_requests as lr2
group by lr2.event_id
但它只返回了 25 行,所以我真的很困惑,其他 63 行去哪里了。
我在 sqlfiddle 中尝试过,它似乎可以正常工作,但在我的服务器上它只是没有,所以它必须是一个设置或其他东西......感觉就像服务器在选择所有子集后计算计数分组结果。很奇怪。
【问题讨论】:
-
第二个查询中缺少哪个 event_id?
-
您使用的是哪个 DBMS?后格雷斯?甲骨文?
-
只有在有 63 DISTINCT event_ids 的情况下,您才会在第二次查询中获得 63 行
-
我猜你对
event_id有多次相同的值。group by意味着event_id列上的不同。如果您将count(event_id)更改为count(*),您将看到每个event_id的重复数 -
那么请设置一个sqlfiddle.com来显示这个
标签: mysql sql aggregate-functions mysql-5.6