← 返回题库
初级

统计各餐厅日销售额

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve():
    from pyodide.http import open_url
    restaurants_csv = open_url("https://data.zuihe.com/dbd/delivery/state_E01/restaurants.csv").read()
    menu_items_csv = open_url("https://data.zuihe.com/dbd/delivery/state_E01/menu_items.csv").read()
    riders_csv = open_url("https://data.zuihe.com/dbd/delivery/state_E01/riders.csv").read()
    orders_csv = open_url("https://data.zuihe.com/dbd/delivery/state_E01/orders.csv").read()
    order_items_csv = open_url("https://data.zuihe.com/dbd/delivery/state_E01/order_items.csv").read()
    delivery_logs_csv = open_url("https://data.zuihe.com/dbd/delivery/state_E01/delivery_logs.csv").read()
    import sqlite3
    import pandas as pd
    from io import StringIO

    conn = sqlite3.connect(':memory:')
    pd.read_csv(StringIO(orders_csv)).to_sql('orders', conn, index=False, if_exists='replace')
    pd.read_csv(StringIO(restaurants_csv)).to_sql('restaurants', conn, index=False, if_exists='replace')

    result = pd.read_sql_query("""
        SELECT r.name, COUNT(o.id) AS order_count, SUM(o.total) AS total_sales
        FROM orders o
        JOIN restaurants r ON o.restaurant_id = r.id
        WHERE o.status != 'cancelled'
        GROUP BY r.id, r.name
        ORDER BY total_sales DESC
    """, conn)
    print(result.to_string(index=False))
    conn.close()

示例

输入
solve()
期望输出
name  order_count  total_sales
   一品寿司            5        729.0
   绿茶餐厅            4        610.0
 麦当劳朝阳店            6        310.0
  蜀香麻辣烫            5        234.0
 星巴克国贸店            4        224.0
 老北京炸酱面            5        221.0
肯德基西直门店            3        189.0
  黄焖鸡米饭            4        126.0
  重庆小面馆            3         97.0
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码