You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL查询问题:统计event_booking表各场地预约数子查询出错如何解决

现有查询的逻辑问题

  • 未对场地做分组去重:你的查询直接从event_booking全表读取数据,没有聚合逻辑,每一条预约记录都会生成一行结果,最终会出现大量重复的场地+计数数据,而非每个场地仅输出一条统计结果。
  • 逻辑冗余:你用到的嵌套子查询、IN子句的分组过滤都是不必要的写法,反而增加了查询性能开销。

正确的查询写法

直接用GROUP BY对booking_location字段聚合,搭配COUNT统计每个分组的记录数即可:

SELECT 
  booking_location,
  COUNT(*) AS no_bookings
FROM event_booking
GROUP BY booking_location;

这条语句会自动将相同booking_location的记录合并为一个分组,COUNT(*)会统计每个分组内的总记录数,最终每个场地仅输出一行统计结果,完全匹配你的需求。
如果需要按预约数量从高到低排序,和你给出的预期输出顺序一致,可以再加排序规则:

SELECT 
  booking_location,
  COUNT(*) AS no_bookings
FROM event_booking
GROUP BY booking_location
ORDER BY no_bookings DESC;

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:36:04