SQL 电商场景面试题, 编写 SQL,查询所有客户的姓名和创建时间,结果按照创建时间降序排序
SQL 电商场景面试题, 编写 SQL,查询所有客户的姓名和创建时间,结果按照创建时间降序排序
QA
Step 1
Q:: 编写 SQL,查询所有客户的姓名和创建时间,结果按照创建时间降序排序。
A:: 答案:
使用以下SQL语句可以实现:
SELECT customer_name, created_at FROM customers ORDER BY created_at DESC;
这条SQL语句从表 customers
中查询 customer_name
和 created_at
字段,并按照 created_at
字段降序排序。
Step 2
Q:: 如果需要查询过去一年内创建的客户,应该如何修改SQL语句?
A:: 答案:
可以通过 WHERE
子句来筛选过去一年内创建的客户:
SELECT customer_name, created_at FROM customers WHERE created_at >= DATE_SUB(CURDATE(), INTERVAL 1 YEAR) ORDER BY created_at DESC;
该语句使用 DATE_SUB
函数来获取当前日期的前一年,并筛选出在此日期之后创建的客户记录。
Step 3
Q:: 如何查询客户姓名并统计每个客户的订单数量?
A:: 答案:
通过 JOIN
操作和 GROUP BY
子句可以统计每个客户的订单数量:
SELECT c.customer_name, COUNT(o.order_id) AS order_count FROM customers c LEFT JOIN orders o ON c.customer_id = o.customer_id GROUP BY c.customer_name;
这条SQL语句通过 LEFT JOIN
将 customers
表与 orders
表关联,并使用 GROUP BY
进行分组统计每个客户的订单数量。
Step 4
Q:: 如何查询每个客户的最新订单的创建时间?
A:: 答案:
可以通过子查询或 GROUP BY
结合 MAX
函数来实现:
SELECT c.customer_name, MAX(o.created_at) AS last_order_time FROM customers c LEFT JOIN orders o ON c.customer_id = o.customer_id GROUP BY c.customer_name;
此SQL语句通过 LEFT JOIN
将客户和订单表关联,使用 GROUP BY
对客户分组并通过 MAX
函数查询每个客户的最新订单时间。
用途
在电商或其他与客户管理相关的系统中,查询客户信息、统计客户订单数据是常见需求。这类SQL面试题主要考察候选人对数据库表结构的理解、复杂查询的构建能力、数据过滤和排序的掌握程度。在实际生产环境中,这类查询通常用于生成报告、分析客户行为、识别活跃客户和流失客户等场景中。\n相关问题
SQL 基础查询面试题, 编写 SQL,查询所有客户的姓名和创建时间,结果按照创建时间降序排序
QA
Step 1
Q:: 编写 SQL 查询,获取所有客户的姓名和创建时间,并按创建时间降序排序。
A:: SELECT name, created_at FROM customers ORDER BY created_at DESC;
这个查询从数据库表中提取客户的姓名 (name) 和创建时间 (created_at)
,并根据创建时间按降序排列结果。这种查询通常用于快速查看最新添加的客户,或者在业务上需要了解最近一段时间新增的客户数据时。
Step 2
Q:: 如何使用 SQL 过滤特定时间段内的客户数据?
A:: SELECT name, created_at FROM customers WHERE created_at BETWEEN '2023-01-01' AND '2023-12-31' ORDER BY created_at DESC;
这个查询过滤出在特定时间范围内(例如 2023
年内)创建的客户,并按创建时间降序排列。这在审计、报告或分析某个时间段内的业务活动时非常有用。
Step 3
Q:: 如何使用 SQL 统计每个月新增的客户数量?
A:: SELECT COUNT(*), DATE_TRUNC('month', created_at) AS month FROM customers GROUP BY month ORDER BY month DESC;
这个查询通过使用 DATE_TRUNC 函数将创建时间按月分组,并统计每月新增的客户数量。这种查询通常用于生成月度报告或分析业务增长趋势。
Step 4
Q:: 如何使用 SQL 查询最近注册的前 5
名客户?
A:: SELECT name, created_at FROM customers ORDER BY created_at DESC LIMIT 5;
这个查询提取最近注册的前 5
名客户,帮助了解最新的客户情况。这在需要快速查看最新数据,或者进行重点客户分析时特别有用。