从今天开始不熬夜

2022-09-13   阅读量: 425

Mysql 数据分析师

CASE匹配表之间的数据

扫码加入数据分析学习群

1663074726373(1).jpg1663074758561(1).jpg

现有表1CourseMaster(包含course_id,course_name),表2OpenCourses(包含month,course_id ),现在要求用这两张表通过SQL代码,生成如下图所示的交叉表:

1663074810509(1).jpg





解法:

/* 表的匹配:使用IN谓词 */

SELECT CM.course_name,

CASE WHEN CM.course_id IN

(SELECT course_id FROM OpenCourses

WHERE month = 200706) THEN '○'

ELSE '×' END AS "6月",

CASE WHEN CM.course_id IN

(SELECT course_id FROM OpenCourses

WHERE month = 200707) THEN '○'

ELSE '×' END AS "7月",

CASE WHEN CM.course_id IN

(SELECT course_id FROM OpenCourses

WHERE month = 200708) THEN '○'

ELSE '×' END AS "8月"

FROM CourseMaster CM;

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
68.4581 1 0 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子