最近做了京东的24年春招题,题目如下:
题目分析
在这道题目中,我们需要从两个表中提取数据:user_info
和 order_log
。以下是每个表使用的字段的汉语意思:
-
user_info(用户信息表)
uid
:用户ID
-
order_log(订单日志表)
uid
:用户ID
目标:计算没有下过订单的用户数量。
输出要求:输出没有下过订单的用户的数量。
知识点关键词:子查询、NOT IN
、计数
解答步骤
-
子查询
首先,我们需要找出所有下过订单的用户ID。可以通过从
order_log
表中选择uid
来实现。select uid from order_log
-
主查询
在主查询中,我们从
user_info
表中选择所有用户,并使用NOT IN
子查询来排除那些已经下过订单的用户。然后使用COUNT(*)
函数来计算没有下过订单的用户数量。select count(*) as cnt from user_info where uid not in (...)
完整代码
select
count(*) as cnt
from user_info
where uid not in (select uid from order_log)
近似题目练习推荐
查找薪水记录超过15条的员工号emp_no以及其对应的记录次数t
- 知识点:子查询、筛选、计数
- 知识点:子查询、计数