如何关联表查询预订超2次的宾客全名及预订次数
统计预订次数超2次的宾客信息
完整SQL查询语句
SELECT CONCAT(family_name, ', ', given_name) AS `Guest`, COUNT(*) AS `COUNT(*)` FROM a2_guest g JOIN a2_booking b ON g.guest_id = b.guest_id GROUP BY g.guest_id, family_name, given_name HAVING COUNT(*) > 2;
语句说明
- 表关联:通过
guest_id字段关联a2_guest(宾客信息表)和a2_booking(预订记录表),确保只统计存在预订记录的宾客。 - 姓名合并:用
CONCAT函数将姓氏(family_name)和名字(given_name)拼接成「姓氏, 名字」的格式,别名为Guest。 - 次数统计:
COUNT(*)统计每个宾客的总预订次数,别名为COUNT(*)。 - 分组与筛选:按
guest_id(唯一标识宾客)、姓氏、名字分组,再用HAVING子句筛选出预订次数大于2的结果(WHERE无法筛选聚合函数结果,必须用HAVING)。
内容的提问来源于stack exchange,提问作者Nicholas Rohrmoser
相关产品推荐
相关产品推荐

