V
主页
SQL每日一题F1028,关联子查询
发布人
create table F1028A (aid varchar(20), bid varchar(20) ) insert into F1028A values ('跑步','张三'); insert into F1028A values ('游泳','张三'); insert into F1028A values ('跳远','李四'); insert into F1028A values ('跳高','王五'); create table F1028B (aid varchar(20), bid varchar(20), cid varchar(20) ) insert into F1028B values ('跑步','张三','胜利'); insert into F1028B values ('游泳','张三','胜利'); insert into F1028B values ('跳高','王五','胜利'); -- Q:anum表示每个人参加的项目数,bnum表示每个人在各自项目中胜利的次数,该如何写这个查询? --解法一: SELECT ISNULL(t1.bid, t2.bid) AS bid, ISNULL(t1.anum, 0) anum, ISNULL(t2.bnum, 0) bnum FROM ( SELECT bid, COUNT(1) AS anum FROM F1028A GROUP BY bid ) t1 FULL JOIN ( SELECT bid, SUM(CASE WHEN cid = '胜利' THEN 1 ELSE 0 END ) bnum FROM F1028B GROUP BY bid ) t2 ON t2.bid = t1.bid; --解法二: SELECT bid ,COUNT(1) AS anum ,ISNULL( ( SELECT SUM(CASE WHEN cid='胜利' THEN 1 ELSE 0 END) FROM F1028B b WHERE a.bid=b.bid ),0) AS bnum FROM F1028A a GROUP BY bid
打开封面
下载高清视频
观看高清视频
视频下载器
SQL每日一题F0530,巧解"递归"问题
SQL每日一题F1008,错位关联
SQL每日一题F1021,while循环操作
SQL高级知识,分组集
SQL每日一题F0805,两种行转列的用法
SQL每日一题F0927,自定义排序
SQL每日一题F0310,求解多行合并一行
SQL每日一题F0923,组内求和
SQL高级知识,动态SQL
SQL每日一题F0711,两种常见关联查询
SQL每日一题F0920,按指定时间段分组
SQL每日一题F1105,求解连续相同问题
SQL技巧合集01,四种去重方法
SQL每日一题F0829,连续性问题的另类解法
SQL基础知识之between and
SQL基础知识之in
SQL每日一题F0913,判断是否为闰年
SQL基础知识之group by的用法
SQL每日一题F0729,存储过程创建日历表
SQL每日一题F0614,删除重复记录行
SQL基础知识之insert into
SQL高级知识,定时任务
SQL每日一题F0331,求解回环表
SQL每日一题F0518,开窗函数的妙用
SQL每日一题F0225,rank()开窗函数的应用
SQL基础知识之select into
SQL每日一题F0629,求解互加好友问题
SQL每日一题F0727,连续登录问题
SQL每日一题F0506,求解背包问题
吊打Navicat! SQL导入导出速度提升10倍
SQL技巧合集04,三种累加方法
SQL每日一题F1102,求解上下行时间差
SQL每日一题F0507,一列转多列
sql基础知识and和or
SQL基础知识之join
SQL基础知识之distinct
SQL每日一题F0303,行偏移函数lead和lag
SQL基础知识之union
MySQL从入门到精通实战教程(MySQL8)
SQL每日一题F0609,数据拼接