中等
技术面试0 次浏览编写一个 SQL 查询语句,找出某一城市中订单量最高的前 10% 的司机。假设存在两个表:drivers(包含 driver_id 和 city 字段)和 orders(包含 order_id 和 driver_id 字段)。
滴滴出行运营
SQL查询订单统计
答题要点
使用 SQL 的窗口函数和排序功能答题。先明确查询步骤,再编写语句。关键要点:1. 连接表:通过 driver_id 连接 drivers 和 orders 表,筛选出某一城市的司机订单数据。2. 统计订单量:使用 COUNT 函数统计每个司机的订单数量。3. 排名:使用窗口函数对司机按订单量排名。4. 筛选前 10%:根据排名筛选出前 10% 的司机。示例语句:SELECT driver_id FROM (SELECT driver_id, COUNT(order_id) as order_count, NTILE(10) OVER (ORDER BY COUNT(order_id) DESC) as percentile FROM drivers JOIN orders ON drivers.driver_id = orders.driver_id WHERE city = '某城市' GROUP BY driver_id) subquery WHERE percentile = 1;