首页 > 解决方案 > 接单5次以上的酒店(MYSQL)

问题描述

我想选择接受订单超过 5 次的酒店。首先,我需要计算每家酒店的订单数量。

这是数据库的 SCHEMA

我试过这个查询来计算来自酒店的订单数

SELECT h.hotel_id , h.hotel_name , COUNT(o.hotel_id) 
FROM hotel_details h
JOIN orders o ON h.hotel_id=o.hotel_id

我得到了这个输出:

hotel_id    hotel_name    COUNT(o.hotel_id)
H1001         A2B           16

16是订单总数是订单表

标签: mysql

解决方案


您使用了没有 GROUP BY 的 COUNT。这就是为什么你的回报只有一行。

要获得那些超过五个的,您可以将此选择用作临时表。

SELECT * FROM
    (SELECT h.hotel_id , h.hotel_name , COUNT(o.order_id) as orders 
    FROM hotel_details h
    JOIN orders o ON h.hotel_id=o.hotel_id
    GROUP BY 1) a
WHERE
    orders >= 5;

推荐阅读