返回

SQL 做题日志 7:简单篇二(5 道题目)

后端

前言

大家好,欢迎来到 SQL 做题日志系列的第七篇。本篇日志收录了 5 道简单难度的题目,均来自牛客网在线编程 SQL 实战专栏。这些题目旨在帮助读者巩固基础 SQL 语法和概念,掌握基本的数据查询和操作技巧。每道题目都附有详细的题解和代码示例,便于读者学习和理解。无论您是 SQL 初学者还是希望提升 SQL 技能的资深开发者,本文都将为您提供宝贵的学习资源。

题目

  1. 查询销售额最高的 5 件商品
SELECT product_name, SUM(sales) AS total_sales
FROM sales_data
GROUP BY product_name
ORDER BY total_sales DESC
LIMIT 5;
  1. 查询过去一周内注册的用户数
SELECT COUNT(*) AS total_users
FROM user_data
WHERE created_at >= DATE('now', '-7 days');
  1. 查询每个客户的平均订单金额
SELECT customer_id, AVG(order_total) AS average_order_amount
FROM order_data
GROUP BY customer_id;
  1. 查询销售额最高的 3 个部门
SELECT department_name, SUM(sales) AS total_sales
FROM sales_data
GROUP BY department_name
ORDER BY total_sales DESC
LIMIT 3;
  1. 查询过去一个月内最活跃的 10 个用户
SELECT user_id, COUNT(*) AS total_activities
FROM user_activity_data
WHERE activity_date >= DATE('now', '-1 month')
GROUP BY user_id
ORDER BY total_activities DESC
LIMIT 10;

题解

题目 1:查询销售额最高的 5 件商品

题解:

本题要求查询销售额最高的 5 件商品。可以使用 SUM() 函数计算每件商品的总销售额,然后使用 GROUP BY 子句对商品名称进行分组,最后使用 ORDER BY 子句按总销售额降序排列,并使用 LIMIT 5 子句限制结果集的前 5 行。

题目 2:查询过去一周内注册的用户数

题解:

本题要求查询过去一周内注册的用户数。可以使用 DATE() 函数获取当前日期,然后使用 DATE() 函数减去 7 天得到过去一周的起始日期。然后使用 WHERE 子句过滤出在过去一周内注册的用户,最后使用 COUNT(*) 函数计算注册用户总数。

题目 3:查询每个客户的平均订单金额

题解:

本题要求查询每个客户的平均订单金额。可以使用 GROUP BY 子句对客户 ID 进行分组,然后使用 AVG() 函数计算每个客户的平均订单金额。

题目 4:查询销售额最高的 3 个部门

题解:

本题要求查询销售额最高的 3 个部门。可以使用 SUM() 函数计算每个部门的总销售额,然后使用 GROUP BY 子句对部门名称进行分组,最后使用 ORDER BY 子句按总销售额降序排列,并使用 LIMIT 3 子句限制结果集的前 3 行。

题目 5:查询过去一个月内最活跃的 10 个用户

题解:

本题要求查询过去一个月内最活跃的 10 个用户。可以使用 DATE() 函数获取当前日期,然后使用 DATE() 函数减去 1 个月得到过去一个月的起始日期。然后使用 WHERE 子句过滤出在过去一个月内有活动的用户,最后使用 GROUP BY 子句对用户 ID 进行分组,然后使用 COUNT(*) 函数计算每个用户的活动总数,最后使用 ORDER BY 子句按活动总数降序排列,并使用 LIMIT 10 子句限制结果集的前 10 行。

结语

希望本文对您有所帮助。如果您有任何问题或建议,请随时留言。