不同維度的數據統計

需求

在這裏插入圖片描述

建表語句

CREATE TABLE CourseMaster
(course_id   INTEGER PRIMARY KEY,
 course_name VARCHAR(32) NOT NULL);

INSERT INTO CourseMaster VALUES(1, '會計入門');
INSERT INTO CourseMaster VALUES(2, '財務知識');
INSERT INTO CourseMaster VALUES(3, '簿記考試');
INSERT INTO CourseMaster VALUES(4, '稅務師');

CREATE TABLE OpenCourses
(month       INTEGER ,
 course_id   INTEGER ,
    PRIMARY KEY(month, course_id));

INSERT INTO OpenCourses VALUES(200706, 1);
INSERT INTO OpenCourses VALUES(200706, 3);
INSERT INTO OpenCourses VALUES(200706, 4);
INSERT INTO OpenCourses VALUES(200707, 4);
INSERT INTO OpenCourses VALUES(200708, 2);
INSERT INTO OpenCourses VALUES(200708, 4);

解答

SELECT 
	course_name,
	case when course_id in (select course_id from opencourses WHERE month=200706) then 'O' ELSE 'X' end as '六月',
	case when course_id in (select course_id from opencourses WHERE month=200707) then 'O' ELSE 'X' end as '七月',
	case when course_id in (select course_id from opencourses WHERE month=200708) then 'O' ELSE 'X' end as '八月'
FROM
	coursemaster t

sql思維很重要

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章