当前位置: 代码迷 >> Oracle管理 >> 请问一个统计的查询语句
  详细解决方案

请问一个统计的查询语句

热度:108   发布时间:2016-04-24 05:04:21.0
请教一个统计的查询语句
想要统计各个学校的各个科目报名人数收费数,
学校名称 数学人数,语文人数,英语人数,。。。总人数

表结构
报名表(id,科目信息id,学校名称,学生id)
科目信息(id,名称,考试时间,)


------解决方案--------------------
测试数据:
SQL code
-- 课程表CREATE TABLE Course(    ID NUMBER(4),    NAME VARCHAR2(20),    ExamineTime DATE);INSERT INTO Course VALUES(1, '数学', to_date('20120301', 'YYYYMMDD'));INSERT INTO Course VALUES(2, '语文', to_date('20120301', 'YYYYMMDD'));INSERT INTO Course VALUES(3, '政治', to_date('20120301', 'YYYYMMDD'));-- 报名表CREATE TABLE Registe(    ID NUMBER(4),    CourseID NUMBER(4),    SchoolName VARCHAR2(20),    StudentID NUMBER(4));INSERT INTO Registe VALUES(1, 1, '学校A', '0001');INSERT INTO Registe VALUES(2, 1, '学校A', '0002');INSERT INTO Registe VALUES(3, 1, '学校B', '0003');INSERT INTO Registe VALUES(4, 1, '学校B', '0004');INSERT INTO Registe VALUES(5, 2, '学校A', '0005');INSERT INTO Registe VALUES(6, 2, '学校A', '0006');INSERT INTO Registe VALUES(7, 2, '学校B', '0007');INSERT INTO Registe VALUES(8, 2, '学校B', '0008');INSERT INTO Registe VALUES(9, 3, '学校A', '0009');INSERT INTO Registe VALUES(10, 3, '学校A', '0010');INSERT INTO Registe VALUES(11, 3, '学校B', '0011');INSERT INTO Registe VALUES(12, 3, '学校B', '0012');CREATE VIEW VTemp AS SELECT SchoolName, NAME, COUNT(1) AS nFROM Registe r INNER JOIN Course cON r.courseid = c.IDGROUP BY SchoolName, NAME;SELECT * FROM VTemp;
  相关解决方案