SQL 做题日志 7:简单篇二(5 道题目)
2023-11-15 09:39:37
前言
大家好,欢迎来到 SQL 做题日志系列的第七篇。本篇日志收录了 5 道简单难度的题目,均来自牛客网在线编程 SQL 实战专栏。这些题目旨在帮助读者巩固基础 SQL 语法和概念,掌握基本的数据查询和操作技巧。每道题目都附有详细的题解和代码示例,便于读者学习和理解。无论您是 SQL 初学者还是希望提升 SQL 技能的资深开发者,本文都将为您提供宝贵的学习资源。
题目
- 查询销售额最高的 5 件商品
SELECT product_name, SUM(sales) AS total_sales
FROM sales_data
GROUP BY product_name
ORDER BY total_sales DESC
LIMIT 5;
- 查询过去一周内注册的用户数
SELECT COUNT(*) AS total_users
FROM user_data
WHERE created_at >= DATE('now', '-7 days');
- 查询每个客户的平均订单金额
SELECT customer_id, AVG(order_total) AS average_order_amount
FROM order_data
GROUP BY customer_id;
- 查询销售额最高的 3 个部门
SELECT department_name, SUM(sales) AS total_sales
FROM sales_data
GROUP BY department_name
ORDER BY total_sales DESC
LIMIT 3;
- 查询过去一个月内最活跃的 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 行。
结语
希望本文对您有所帮助。如果您有任何问题或建议,请随时留言。