班级表:
Id name type
1 1 1班 文科班
2 2 2班 理科班
3 3 3班 理科班
学生表
Id name classid
1 王1 1
2 王2 1
3 王3 2
4 王4 3
一条sql语句查询所有班级个数、文科班个数、理科班个数、所有班级人数、文科班人数、理科班人数
班级表:
Id name type
1 1 1班 文科班
2 2 2班 理科班
3 3 3班 理科班
学生表
Id name classid
1 王1 1
2 王2 1
3 王3 2
4 王4 3
一条sql语句查询所有班级个数、文科班个数、理科班个数、所有班级人数、文科班人数、理科班人数
SELECT * FROM
(
SELECT COUNT(c.`type`) AS '班级个数',
SUM(CASE WHEN TYPE='文科班' THEN 1 ELSE 0 END) '文科班个数',
SUM(CASE WHEN TYPE='理科班' THEN 1 ELSE 0 END) '理科班个数'
FROM class c
) c_t,
(
SELECT COUNT(c.`id`) AS '总人数',
SUM(CASE c.`type` WHEN '理科班' THEN 1 ELSE 0 END) AS '文科班人数',
SUM(CASE c.`type` WHEN '文科班' THEN 1 ELSE 0 END) AS '理科班人数'
FROM student s,class c
WHERE s.`classid` = c.`id`
)s_t
select count(distinct a.id) as 班级个数,
count(distinct case when a.type='理科班' then a.id end) as 理科班个数,
count(distinct case when a.type='文科班' then a.id end) as 文科班个数,
count(b.id) as 所有班级人数 ,
sum(case when a.type='理科班' and b.id is not null then 1 else 0 end) as 理科班人数,
sum(case when a.type='文科班' and b.id is not null then 1 else 0 end) as 文科班人数
from 班级表 as a
left join 学生表 as b
select (select count(distinct name) from 班级表 ) as 所有班级个数,
( select count(distinct name) from 班级表 where type='文科班' ) as 文科班个数,
( select count(distinct name) from 班级表 where type='理科班' ) as 理科班个数,
( select count(Id) from 学生表 ) as 所有班级人数,
( select count(Id) from 学生表 where classid in (select id from 班级表 where type='文科班')) as 文科班人数 ,
( select count(Id) from 学生表 where classid in (select id from 班级表 where type='理科班')) as 理科班人数
select count(*) from 班级表
union select count(*) from 班级表 where type='文科班'
union select count(*) from 班级表 where type='理科班'
union select count(*) from 学生表
union select count(*) from 学生表 where classid in (select id from 班级表 where type='理科班')
union select count(*) from 学生表 where classid in (select id from 班级表 where type='理科班')
相关推荐
【SQL语句详解】 SQL(Structured Query Language),结构化查询语言,是用于管理和处理数据库的标准语言。本课件深入浅出地介绍了SQL的基础知识,包括数据的增删改查(CRUD)操作以及数据库表的定义和结构修改。 ...
华容道求解过程sql语句集
为了解决这个问题,研究团队采用了基于SQL语句模板填充的方法。这种方法的核心思想是将序列生成问题转化为多个分类问题。在训练深度学习模型的过程中,充分利用SQL子句中不同预测成分之间的依赖关系。这样一来,能够...
在SQL数据库管理中,有时我们需要清理数据,...- SQL语句练习实例之三:计算平均销售等待时间,可能涉及到时间差计算和平均值的求解。 通过这些实例,我们可以深入理解和熟练运用SQL语言,提高数据处理和分析的能力。
用Oracle PL/SQL 语言开发的运筹学(最优化)算法.目前包括线性方程组求解,线性规划最优化求解等功能,经过了大量数据测试验证,附带详细使用说明,新功能正在继续开发调试之中,敬请各位使用并不吝赐教. A.运筹学算法...
### PL/SQL 求10的阶乘 在数据库编程中,经常需要用到循环结构来处理数据或执行特定任务。阶乘是一个常见的示例,它不仅有助于理解循环语句的基本用法,还能够帮助我们更好地掌握数据库编程语言的语法结构。本文将...
这样的练习有助于学生熟悉SQL语句的编写,增强他们解决实际问题的能力。 实验报告的第三部分涉及数据库的管理。学生需要掌握如何使用向导创建数据库,分离和附加数据库,进行数据库文件备份,以及删除数据库。这些...
- **SQL 语句**:`SELECT employee.name FROM Test employee WHERE employee.age > (SELECT manager.age FROM Test manager WHERE manager.id = employee.manager);` - **解析**:这个查询中使用了一个子查询来获取...
为了编写高效的SQL语句,程序员需要有高效的求解算法,并且SQL语句的语法要符合数据库优化器的语法优化原则。但是,即使满足这些要求,优化器有时也可能找不到较好的执行计划。优化器的结构和优化方法决定了它如何对...
6.2.4 标识SQL语句以便以后取回计划 153 6.2.5 深入理解DBMS_XPLAN的细节 156 6.2.6 使用计划信息来解决问题 161 6.3 小结 169 第7章 高级分组 170 7.1 基本的GROUP BY用法 171 7.2 HAVING子句 174 7.3 GROUP...
本篇文章将基于提供的代码片段来详细介绍如何在SQL Server 2005中求解指定范围内的所有素数。 ### SQL Server 2005简介 SQL Server 2005是由微软开发的一款关系型数据库管理系统,它提供了丰富的功能和工具,帮助...
通过SQL语句来导入数据,生成初始数据,并且在分配过程中动态调整,最终完成场次分配。 在预处理阶段,通过编写T-SQL脚本导入选课数据,生成场次表和冲突表的初始数据。例如,利用INSERT语句将选课数据导入场次表,...
关于"小霸王"的求解问题,这是一个数字谜题,可以使用循环和条件判断来解决,但在SQL中并不常见。通常这类问题更适合编程语言如Python或Java。 最后,给定的数据片段要求查询每门课都大于80分的学生姓名,可以使用...
总之,SQL查询功能的三大理论基础——关系数据库三级模式结构、关系代数和关系演算,为我们理解和编写SQL查询语句提供了重要的理论支持。掌握这些理论知识,不仅可以帮助我们更加深入地理解SQL语言本身,而且能够更...
- **查询块**: 一个完整的`SELECT-FROM-WHERE`语句称为一个查询块。 - **嵌套查询**: 将一个查询块嵌套在另一个查询块的`WHERE`子句或`HAVING`短语的条件中的查询称为嵌套查询。 #### 三、嵌套查询示例 例如,要...
然后,编写SQL查询语句,通过Java代码执行这些查询以找到匹配用户搜索条件的书籍。 图形定位则可能涉及到地理信息系统(GIS)或地图API。在Java中,Google Maps API和OpenStreetMap的Java库(如JOSM)是常见的选择...
生成表查询 SQL 语句 在 Access 数据库程序设计中,生成表查询是一种常用的操作查询类型,主要用于从一个或多个表中提取有用数据来创建新的表。如果目标数据库中已经存在同名的新表,则会覆盖原有数据。 **SQL ...
开发者可能使用了MySQL或Oracle等关系型数据库管理系统,通过SQL语句进行数据操作,实现了题目的增删改查、分类存储、难度设置等功能。 3. **离散数学题库**:离散数学是计算机科学的基础课程,涉及集合论、图论、...
子查询,也称为嵌套查询,是将一个SELECT-FROM-WHERE语句插入到另一个查询的WHERE子句或HAVING短语中的查询,增强了SQL的查询能力。它允许我们用一系列简单的查询构建复杂的查询结构,体现了SQL的“结构化”特性。 ...