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

如何使用MySQL查询2021年1月各餐厅名称及对应订单总数?

解决方案

要查询2021年1月各餐厅的名称及对应订单总数,你需要关联restaurants和orders表,同时过滤指定月份的订单并分组统计。以下是可行的SQL语句:

SELECT 
    r.name AS restaurant_name,
    COUNT(o.id) AS total_orders
FROM 
    restaurants r
LEFT JOIN 
    orders o ON r.id = o.restaurant_id
WHERE 
    EXTRACT(YEAR FROM o.date) = 2021 
    AND EXTRACT(MONTH FROM o.date) = 1
GROUP BY 
    r.id, r.name
ORDER BY 
    total_orders DESC;

关键说明:

  • 表关联:用LEFT JOIN确保即使餐厅在2021年1月没有订单,也会出现在结果中(此时total_orders为0)。如果只需要统计有订单的餐厅,替换成INNER JOIN即可。
  • 日期过滤:使用EXTRACT函数提取年份和月份,精准筛选2021年1月的订单。也可以用o.date BETWEEN '2021-01-01' AND '2021-01-31',但EXTRACT适配性更强,不受不同数据库日期格式的影响。
  • 分组统计:按餐厅的id和name分组,避免因同名餐厅导致统计错误;用COUNT(o.id)统计有效订单数(订单表中无匹配记录时,o.id为NULL,不会被计入统计)。

执行结果(基于你的测试数据):

restaurant_nametotal_orders
KFC4
McDonald's2
Howdy1
Kitchen Cuisine1
JFC0
Hardees0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 13:57:19