/*  通过代码操作:创建一个数据库,里面有一个学生信息表,
内容包括:学号,姓名,性别,体重,年龄,语数外三门课分数,班级 插入20条数据
执行以下查询操作:
1.查姓王的同学的信息
2.分别查每门课程最高分,最低分
3.查男同学的名字,只查一列
4.查每个班每门课程分别最高分最低分*/ create database data01
go
use data01
go
create table xueshengxinxi--注意列之间用,隔开
(
[No.] int,
name varchar(10),
sex varchar(10),
age int,
[weight] decimal(10,2),
Chinese int,
Math int,
English int
)
insert into xueshengxinxi values(1,'张蕾蕾','女',20,50,95,90,97)
insert into xueshengxinxi values(2,'李鑫','男',21,65,90,90,88)
insert into xueshengxinxi values(3,'刘莉莉','女',21,55,90,80,100)
insert into xueshengxinxi values(4,'张峰','男',20,63,85,85,80)
insert into xueshengxinxi values(5,'王乐','男',20,66,80,90,73)
insert into xueshengxinxi values(6,'王馨茹','女',19,47,99,70,96)
insert into xueshengxinxi values(7,'赵矿一','男',20,70,70,60,55)
insert into xueshengxinxi values(8,'程依依','女',19,45,87,89,86)
insert into xueshengxinxi values(9,'程依儿','女',19,45,90,85,87)
insert into xueshengxinxi values(10,'孙厚','男',21,76,75,67,63)
insert into xueshengxinxi values(11,'朱磊','男',20,67,70,78,71)
insert into xueshengxinxi values(12,'王谦','男',22,71,80,81,74)
insert into xueshengxinxi values(13,'孙丽娜','女',21,49,90,71,96)
insert into xueshengxinxi values(14,'张乐乐','女',22,51,81,72,84)
insert into xueshengxinxi values(15,'李忠','男',21,61,79,81,75)
insert into xueshengxinxi values(16,'李艳艳','女',20,48,70,60,98)
insert into xueshengxinxi values(17,'王萌萌','女',22,50,90,63,70)
insert into xueshengxinxi values(18,'刘星','男',22,66,70,81,66)
insert into xueshengxinxi values(19,'邹子冰','女',21,44,70,70,80)
insert into xueshengxinxi values(20,'富国庆','男',22,70,80,50,70) select *from xueshengxinxi
--查某姓的同学
select *from xueshengxinxi where name like '刘%'
--分别查每门课程最高分,最低分
select top 1 *from xueshengxinxi order by Chinese desc--Chinese最高分
select top 1 *from xueshengxinxi order by Math desc--Math最高分
select top 1 *from xueshengxinxi order by English desc--English最高分
select top 1 *from xueshengxinxi order by Chinese asc--Chinese最低分
select top 1 *from xueshengxinxi order by Math --Math最低分
select top 1 *from xueshengxinxi order by English --English最低分
-- 3.查男同学的名字,只查一列
select name from xueshengxinxi where sex='男'
-- 4.查每个班每门课程分别最高分最低分*/
--把班级忘了,
alter table xueshengxinxi add Class varchar(10)--添加班级一列
update xueshengxinxi set Class='12级1班' where [No.] between 1 and 7
update xueshengxinxi set Class='12级2班' where [No.] between 8 and 14
update xueshengxinxi set Class='12级3班' where [No.] between 15 and 20
--查每个班每门课程分别最高分最低分
select top 1 *from xueshengxinxi where Class='12级1班' order by English
select top 1 *from xueshengxinxi where Class='12级1班' order by Chinese
select top 1 *from xueshengxinxi where Class='12级1班' order by Math
select top 1 *from xueshengxinxi where Class='12级1班' order by English desc
select top 1 *from xueshengxinxi where Class='12级1班' order by Chinese desc
select top 1 *from xueshengxinxi where Class='12级1班' order by Math desc select top 1 *from xueshengxinxi where Class='12级2班' order by English
select top 1 *from xueshengxinxi where Class='12级2班' order by Chinese
select top 1 *from xueshengxinxi where Class='12级2班' order by Math
select top 1 *from xueshengxinxi where Class='12级2班' order by English desc
select top 1 *from xueshengxinxi where Class='12级2班' order by Chinese desc
select top 1 *from xueshengxinxi where Class='12级2班' order by Math desc select top 1 *from xueshengxinxi where Class='12级3班' order by English
select top 1 *from xueshengxinxi where Class='12级3班' order by Chinese
select top 1 *from xueshengxinxi where Class='12级3班' order by Math
select top 1 *from xueshengxinxi where Class='12级3班' order by English desc
select top 1 *from xueshengxinxi where Class='12级3班' order by Chinese desc
select top 1 *from xueshengxinxi where Class='12级3班' order by Math desc
 ---------------------聚合函数-------------------------
--只针对一列操作,只返回一个值,可以组合使用
select *from xueshengxinxi
--求平均值 AVG 只能对数字类型进行操作。返回一个值,根据列的数据类型返回
select avg(age) as 年龄 from xueshengxinxi
select AVG([weight]) as 体重 from xueshengxinxi
select AVG(Chinese) as 语文 from xueshengxinxi where Class='12级1班'
-- 个数 COUNT() 括号内加字段 返回非空值的数量
select COUNT(*) as 总人数 from xueshengxinxi--显示所有个数
select COUNT(*) from xueshengxinxi where name like '王%'--按条件显示个数
select COUNT(distinct Class) from xueshengxinxi--去重显示个数。(distinct)
--最大值 MAX 最小值 MIN
select MAX(English) from xueshengxinxi where Class='12级1班'
select MIN(Math) from xueshengxinxi
--和 SUM
select SUM(Math) from xueshengxinxi
--这些聚合函数只返回一个值,可以组合使用
--组合使用聚合函数 , 使用,隔开
select AVG(age)平均年龄, COUNT(*) as 人数 from xueshengxinxi--不用as可直接在括号后跟上要显示的列名
select MAX(English) as 英语最高分, MAX(Math) as 数学最高分, MAX(Chinese) as 语文最高分 from xueshengxinxi
 --------分组--------
--group by 只针对一列分组,先分完组,再进行操作(必须有聚合函数)
select Class from xueshengxinxi group by Class
select Class,AVG(Math) from xueshengxinxi group by Class
select age from xueshengxinxi where age>=20 group by age--可以添加条件
--可以显示人数用COUNT
select age,COUNT(*) from xueshengxinxi where age between 18 and 20 group by age
--习题按照课程的分数段查询每个班有多少人
select Class,COUNT(*) from xueshengxinxi where Chinese>=80 group by Class
select Class,COUNT(*) from xueshengxinxi where Chinese>=60 and English>=60 and Math>=60 group by Class
--group by 特殊的having 后面加聚合函数的选择条件
--group by 先看group by 之前的再看之后的
--先from之前,在有where的时候先算where
select Class,COUNT(*) from xueshengxinxi where Chinese>=80 group by Class having COUNT(*)>5
select Class,COUNT(*),AVG(Math) from xueshengxinxi group by Class having AVG(Math)>70
--每个班的数学平均分
select Class,COUNT(*),AVG(Math) from xueshengxinxi where Math>75 group by Class order by count(*)
--每个班的语,数,外三门课的最高分
select Class,MAX(Chinese) as 语文,MAX(Math) as 数学,MAX(English) as 外语 from xueshengxinxi group by Class
 ------------------------------数学函数---------------------------
--print 是在消息框中显示 select 是在结果中显示
--取绝对值, ABS 在要取绝对值的那一列前 ABS(列名)
alter table xueshengxinxi add test int--添加test一列
alter table xueshengxinxi add test2 decimal(18,2)
select *from xueshengxinxi
select ABS(-10)
print abs(-15)
select [No.],name,abs(test) from xueshengxinxi--显示某一列的绝对值
select *from xueshengxinxi where ABS(test)>50--绝对值大于50的 --取整数 上限CEILING 下限FLOOR 前后都可使用,
select *from xueshengxinxi where CEILING(test2)>6--上限大于6的
select FLOOR(test2) from xueshengxinxi --取下限 --POWER 次方 POWER(列名,x次方)
select POWER(age,2),POWER(age,3) from xueshengxinxi--查询age列的平方 3次方
--SQRT 平方根
select SQRT(age) from xueshengxinxi--age列的平方根
--ROUND 四舍五入 ROUND(列名,x位小数)
select test2,ROUND(test2,0) from xueshengxinxi-- test2列的四舍五入(小数点后0个)

20141031--SQL分组,数学函数,聚合函数的更多相关文章

  1. SQL语言基本操作(聚合函数)

    一.聚合函数 1.标量函数:只能对单个的数字或值进行计算.主要包括字符函数.日期/时间函数.数值函数和转换函数这四类.如LEFT/RIGHT/SUBSTRING/LTRIM/RTRIM/CONCAT/ ...

  2. MySQL全面瓦解10:分组查询和聚合函数

    概述 相信我们经常会遇到这样的场景:想要了解双十一天猫购买化妆品的人员中平均消费额度是多少(这可能有利于对商品价格区间的定位):或者不同年龄段的化妆品消费占比是多少(这可能有助于对商品备货量的预估). ...

  3. sql server 2012 自定义聚合函数(MAX_O3_8HOUR_ND) 计算最大的臭氧8小时滑动平均值

    采用c#开发dll,并添加到sql server 中. 具体代码,可以用visual studio的向导生成模板. using System; using System.Collections; us ...

  4. SQL分组查询及聚集函数的使用

    今天要做一个查询统计功能,一开始有点犯难,上午尝试大半天才写出统计sql语句,才发现自己sql分组查询及聚集函数没学好:其实就是group by子句和几个聚集函数,熟练使用统计功能很简单.在此总结下今 ...

  5. SQL——连接查询、聚合函数、开窗函数、分组功能、联合查询、子查询

    连接查询 inner join,用的最多,表示多张表一一对应 聚合函数 操作行数据,进行合并 sum.avg.count.max.min 开窗函数 将合并的数据分布到原表的每一行,相当于多出来了一列, ...

  6. SQL Server的各种聚合函数

    聚合函数是对一组值执行计算并返回单一的值的函数,它经常与SELECT语句的GROUP BY子句一同使用,SQL SERVER 中具体有哪些聚合函数呢?我们来一一看一下: 1. AVG 返回指定组中的平 ...

  7. SQL中子查询为聚合函数时的优化

    测试数据:create table test1 as select * from dba_objects where rownum<=10000;--10000条记录create table t ...

  8. MySQL-快速入门(5)数据查询-常用关键字、分组查询、聚合函数

    1.in关键字.in的效率高于or. in (value1,value2,...) 或者not in (value1,value2,...) 2.between ... and ... between ...

  9. 2、SQL基础整理(聚合函数)

    聚合函数 --求平均 select  AVG(age) as 年龄 from xuesheng select AVG(chinese) as 语文 from xuesheng where class ...

  10. 【T-SQL系列】常用函数—聚合函数

    聚合函数平均值AVG.标准偏差STDEV.方差VAR.最大值MAX.最小值MIN.合计SUM.次数COUNT.极差值MAX-MIN.变异系数STDEV/AVG*100 什么是统计统计 就是通过样本特性 ...

随机推荐

  1. Android开发 设置开机自动启动

    原文:http://blog.csdn.net/kevinmeng_ini58/article/details/7700786 片段一: <!-- 开机启动 --> <receive ...

  2. cocos2d-x中CCScale9Sprite的另一种实现

    cocos2d 2.0之后加入了一种九宫格的实现,主要作用是用来拉伸图片,这样的好处在于保留图片四个角不变形的同时,对图片中间部分进行拉伸,来满足一些控件的自适应(PS: 比如包括按钮,对话框,最直观 ...

  3. BM25相关度打分公式

    BM25算法是一种常见用来做相关度打分的公式,思路比较简单,主要就是计算一个query里面所有词和文档的相关度,然后在把分数做累加操作,而每个词的相关度分数主要还是受到tf/idf的影响.公式如下: ...

  4. 计划任务命令crontab、at

    一.为计划任务提供支持 开始为系统建立计划任务之前,需要为系统添加相关设置,以确保计划任务能够正确运行.计划任务需要的支持主要包括两个方面:正确运行系统服务.准确的系统时间. 1.正确运行系统服务 为 ...

  5. -force_load使用办法

    项目中用到Three20框架,同时也使用了讯飞语音的framework,编译时出现类似如下冲突提示信息: ld: duplicate symbol _OBJC_CLASS_$_AdLinks in / ...

  6. 在vim中设置将tab自动转化为4个空格

    在vim中,我们只需要简单配置一下就ok了,打开~/.vimrc加上下面的几行(如果已经有了,修改一下数值就行了). set tabstop=4set softtabstop=4set shiftwi ...

  7. The Kernel Newbie Corner: Kernel Debugging with proc "Sequence" Files--Part 2

    转载:https://www.linux.com/learn/linux-career-center/39972-kernel-debugging-with-proc-qsequenceq-files ...

  8. LeetCode3 Longest Substring Without Repeating Characters

    题意: Given a string, find the length of the longest substring without repeating characters. Examples: ...

  9. Data Structure 之 算法设计策略

    1. 穷举法 基本思想:列举问题的所有可能解,并用约束条件逐一进行判定,找出符合约束条件的解. 穷举法的关键在于问题的可能解的列举和可能解的判别. 例如:凑数问题 2. 递归技术 定义:直接或间接调用 ...

  10. js正则表达式验证账号手机号电话邮箱

    1.账号 规则:字母.数字.下划线组成,字母开头,4-16位. 表达式:/^[a-zA-z]\w{3,15}$/: 2.手机号 规则:11位数字,以1开头 表达式:/^1\d{10}$/ 3.电话号码 ...