day13 SQL基础-连接

文章提供了几个SQL查询示例,包括计算布尔表达式的值,为用户推荐朋友喜欢但自己未喜欢的页面,找出至少有5名直接下属的经理,以及计算每个员工所在团队的人数。这些查询涉及到表连接、条件判断、分组和窗口函数等SQL核心技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1440. 计算布尔表达式的值
在这里插入图片描述
写一个 SQL 查询, == 以计算表 Expressions 中的布尔表达式.==

返回的结果表没有顺序要求.

查询结果格式如下例所示.
在这里插入图片描述

select
	e.*,
	case when e.operator='=' and a.value=b.value then 'true' 
			when e.operator='>' and a.value>b.value then 'true'
			when e.operator='<' and a.value<b.value then 'true'
			else 'false'
	 end as value 
from
	expressions as e left join variables as a on e.left_operand =a.name
	left join variables as b on b.name=e.right_operand

1264. 页面推荐
在这里插入图片描述

写一段 SQL 向user_id = 1 的用户,推荐其朋友们喜欢的页面。不要推荐该用户已经喜欢的页面。

你返回的结果中不应当包含重复项。

返回结果的格式如下例所示。
在这里插入图片描述
在这里插入图片描述

方法一:
select
	 distinct page_id as recommended_page 
from
     Likes as l
where
	l.user_id in (
	select
		user2_id
	from
		Friendship as f
	where
		f.user1_id='1'
	union
	select
		user1_id
	from
		Friendship as f
	where
		f.user2_id='1'
		
	) and page_id not in(
			select page_id from Likes where user_id='1'
	)
	方法二:
	select
	    distinct l.page_id as recommended_page 
    from
		Likes as l
    where
		l.user_id in (
			select
				if(f.user1_id<f.user2_id , f.user2_id , f.user1_id) as user2_id
			from
				Friendship as f
			where
				f.user1_id='1' or f.user2_id='1'
		) and page_id not in(
			   select page_id from Likes where user_id='1'
		)

570. 至少有5名直接下属的经理
在这里插入图片描述
编写一个SQL查询,查询至少有5名直接下属的经理 。

以 任意顺序 返回结果表。

查询结果格式如下所示。
在这里插入图片描述

方法一:
select
	t.name
from
	Employee as t
where
    t.id in (
			select 
				e.managerId
			from
				Employee as e
		    group by
				e.managerId
			having
				count(*)>4
	)
方法二:左连接

1303. 求团队人数
在这里插入图片描述
编写一个 SQL 查询,以求得每个员工所在团队的总人数。

查询结果中的顺序无特定要求。

查询结果格式示例如下:
在这里插入图片描述

考点:窗口函数
select
	e.employee_id,
	count(e.team_id) over(partition by e.team_id) as team_size  
from
	Employee as e
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值