0 0

求解一道sql语句5

班级表:

              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语句查询所有班级个数、文科班个数、理科班个数、所有班级人数、文科班人数、理科班人数

2013年10月24日 10:48

5个答案 按时间排序 按投票排序

0 0



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

2013年10月25日 14:36
0 0

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

2013年10月25日 10:11
0 0

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 理科班人数

2013年10月24日 14:51
0 0

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='理科班')

2013年10月24日 11:00
0 0

使用 UNION ?

2013年10月24日 10:56

相关推荐

    数据库中sql语句的课件

    【SQL语句详解】 SQL(Structured Query Language),结构化查询语言,是用于管理和处理数据库的标准语言。本课件深入浅出地介绍了SQL的基础知识,包括数据的增删改查(CRUD)操作以及数据库表的定义和结构修改。 ...

    huarongdao.sql

    华容道求解过程sql语句集

    自然语言生成多表SQL查询语句技术研究.pdf

    为了解决这个问题,研究团队采用了基于SQL语句模板填充的方法。这种方法的核心思想是将序列生成问题转化为多个分类问题。在训练深度学习模型的过程中,充分利用SQL子句中不同预测成分之间的依赖关系。这样一来,能够...

    SQL语句练习实例之七 剔除不需要的记录行

    在SQL数据库管理中,有时我们需要清理数据,...- SQL语句练习实例之三:计算平均销售等待时间,可能涉及到时间差计算和平均值的求解。 通过这些实例,我们可以深入理解和熟练运用SQL语言,提高数据处理和分析的能力。

    Oracle 数值求解优化算法

    用Oracle PL/SQL 语言开发的运筹学(最优化)算法.目前包括线性方程组求解,线性规划最优化求解等功能,经过了大量数据测试验证,附带详细使用说明,新功能正在继续开发调试之中,敬请各位使用并不吝赐教. A.运筹学算法...

    PLSQL求10的阶乘

    ### PL/SQL 求10的阶乘 在数据库编程中,经常需要用到循环结构来处理数据或执行特定任务。阶乘是一个常见的示例,它不仅有助于理解循环语句的基本用法,还能够帮助我们更好地掌握数据库编程语言的语法结构。本文将...

    sql试验报告sql的试验报告,一学期的实验报告都在里面。包括试验目的和截图,实验步骤,等等

    这样的练习有助于学生熟悉SQL语句的编写,增强他们解决实际问题的能力。 实验报告的第三部分涉及数据库的管理。学生需要掌握如何使用向导创建数据库,分离和附加数据库,进行数据库文件备份,以及删除数据库。这些...

    SQL经典面试题SQL经典面试题SQL经典面试题

    - **SQL 语句**:`SELECT employee.name FROM Test employee WHERE employee.age > (SELECT manager.age FROM Test manager WHERE manager.id = employee.manager);` - **解析**:这个查询中使用了一个子查询来获取...

    多关系SQL查询中连接顺序的优化.pdf

    为了编写高效的SQL语句,程序员需要有高效的求解算法,并且SQL语句的语法要符合数据库优化器的语法优化原则。但是,即使满足这些要求,优化器有时也可能找不到较好的执行计划。优化器的结构和优化方法决定了它如何对...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    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中求素数

    本篇文章将基于提供的代码片段来详细介绍如何在SQL Server 2005中求解指定范围内的所有素数。 ### SQL Server 2005简介 SQL Server 2005是由微软开发的一款关系型数据库管理系统,它提供了丰富的功能和工具,帮助...

    排考场次分配方法及其SQL实现.pdf

    通过SQL语句来导入数据,生成初始数据,并且在分配过程中动态调整,最终完成场次分配。 在预处理阶段,通过编写T-SQL脚本导入选课数据,生成场次表和冲突表的初始数据。例如,利用INSERT语句将选课数据导入场次表,...

    SQL面试(SQL面试的一些题目和答案)

    关于"小霸王"的求解问题,这是一个数字谜题,可以使用循环和条件判断来解决,但在SQL中并不常见。通常这类问题更适合编程语言如Python或Java。 最后,给定的数据片段要求查询每门课都大于80分的学生姓名,可以使用...

    浅谈SQL查询功能的三个理论基础.pdf

    总之,SQL查询功能的三大理论基础——关系数据库三级模式结构、关系代数和关系演算,为我们理解和编写SQL查询语句提供了重要的理论支持。掌握这些理论知识,不仅可以帮助我们更加深入地理解SQL语言本身,而且能够更...

    SQL嵌套查询

    - **查询块**: 一个完整的`SELECT-FROM-WHERE`语句称为一个查询块。 - **嵌套查询**: 将一个查询块嵌套在另一个查询块的`WHERE`子句或`HAVING`短语的条件中的查询称为嵌套查询。 #### 三、嵌套查询示例 例如,要...

    求解一个问题

    然后,编写SQL查询语句,通过Java代码执行这些查询以找到匹配用户搜索条件的书籍。 图形定位则可能涉及到地理信息系统(GIS)或地图API。在Java中,Google Maps API和OpenStreetMap的Java库(如JOSM)是常见的选择...

    全国计算机等级考试《二级Access数据库程序设计》试题(网友回忆版)四.docx

    生成表查询 SQL 语句 在 Access 数据库程序设计中,生成表查询是一种常用的操作查询类型,主要用于从一个或多个表中提取有用数据来创建新的表。如果目标数据库中已经存在同名的新表,则会覆盖原有数据。 **SQL ...

    JAVA+SQL离散数学题库管理系统(源代码+论文+外文翻译).zip

    开发者可能使用了MySQL或Oracle等关系型数据库管理系统,通过SQL语句进行数据操作,实现了题目的增删改查、分类存储、难度设置等功能。 3. **离散数学题库**:离散数学是计算机科学的基础课程,涉及集合论、图论、...

    SQL的数据查询功能之四---子查询.

    子查询,也称为嵌套查询,是将一个SELECT-FROM-WHERE语句插入到另一个查询的WHERE子句或HAVING短语中的查询,增强了SQL的查询能力。它允许我们用一系列简单的查询构建复杂的查询结构,体现了SQL的“结构化”特性。 ...

Global site tag (gtag.js) - Google Analytics