SQL面试题更新 2026-08-05

请编写一条 SQL 语句,用于计算所有订单总金额的平均值。

编码实现SQL

考察说明

考查对 SQL 聚合函数 AVG 的理解与使用,能否根据表结构写出正确的 SQL 查询。

回答思路

  1. 【回答框架 1】使用 AVG 函数计算数值列的平均值,语法为 SELECT AVG(列名) FROM 表名。若需计算订单总金额,可从订单表中选择总金额列,如 SELECT AVG(order_total) FROM orders。
  2. 【回答框架 2】若表中的总金额字段为订单总金额,则直接计算即可;若需先计算每个订单的总金额(如订单明细表),则需先按订单分组求和,再对结果求平均,例如 SELECT AVG(order_sum) FROM (SELECT SUM(item_total) AS order_sum FROM order_items GROUP BY order_id) t。
  3. 【回答框架 3】注意 AVG 函数会忽略 NULL 值,但若列全为 NULL,结果为 NULL。
  4. 【回答框架 4】若需保留两位小数,可结合 ROUND 函数,如 SELECT ROUND(AVG(order_total), 2) FROM orders。
  5. 【关键点 1】AVG 函数计算平均值,忽略 NULL。
  6. 【关键点 2】若需先分组求和再平均,使用子查询。
  7. 【关键点 3】可使用 ROUND 控制小数位。
  8. 【易错点 1】若订单总金额存储为订单表字段,直接 AVG 即可,避免多余子查询。
  9. 【易错点 2】若需按订单分组求和再平均,不可直接 AVG 明细表中的金额。