中等
技术面试0 次浏览

在 MySQL 数据库中,有用户表(user)和订单表(order),用户表包含用户 ID(user_id)和用户名(username),订单表包含订单 ID(order_id)、用户 ID(user_id)和订单金额(amount)。请编写 SQL 查询语句,找出每个用户的总订单金额,并按总金额降序排列。

微软中国后端工程师
MySQLSQL查询

答题要点

推荐答题框架:采用分步分析法,先确定连接表的方式,再进行分组和聚合操作,最后排序。关键要点:1. 表连接:使用 INNER JOIN 通过用户表和订单表的 user_id 进行连接,获取每个用户对应的订单信息。2. 分组聚合:使用 GROUP BY 按用户 ID 分组,使用 SUM 函数计算每个用户的总订单金额。3. 结果排序:使用 ORDER BY 按总订单金额降序排列。示例思路:首先,将 user 表和 order 表通过 user_id 进行 INNER JOIN 连接,得到用户和其订单的关联信息。然后,用 GROUP BY user.user_id 对用户分组,使用 SUM(order.amount) 计算每个用户的总订单金额。最后,用 ORDER BY SUM(order.amount) DESC 按总金额降序排列结果。查询语句如下:SELECT user.user_id, user.username, SUM(order.amount) AS total_amount FROM user INNER JOIN order ON user.user_id = order.user_id GROUP BY user.user_id ORDER BY total_amount DESC;