9.2.1 Renaming Retrieved Columns
为了命名一个列名。select 1 as one ,4*2 'for Times Three';
1.这关键字AS是可选的
2.一个别名可能是引用
3.不能再where语句中使用别名
9.3指定哪一行被获得
< > or
9.3.1 使用order by to 排序query结果
默认是按升序排列
9.3.2 数据类型的自然排序
1.一个数值类型排序是升序按大小
2.一个时间默认按升序
3.字符串类型
4.对于集合类型可以使用表示的值排序也可以 order by cast(hue as char)
9.3.3 使用LIMIT来限制选择
LIMIT row_count
LIMT skip_count,row_count
select* form country limit 10.选择前10行
select * from contry limit 20,10;跳过20行和返回接下来的10行
select distinct last_name from t;
下面的语句时等效的:
select distinct id from t;
select id from t group by id;
下面的语句也是等效的:
select distinct id,name from t;
select id,name from t group by id,name;
统计数目:
select count(distinct j) from t;
9,4 Aggetgating results
select continent avg(population) from Country group by continent;
聚合函数可以在使用group by和没有使用group by的情况下使用,没有使用group by把整个表当做整体
9.4.1 这MIN()and MAx()聚合函数
slect MIN(Population),MAX(Population) from Country;
select count(i) ,coun(j) from t;
select count(distinct i),cont(distinct j) from t;
group_concat(Language)把结果连接在一起
如:select group_concat(Language SEPATOR '-')
as Languages
From CountryLanguage where CountryCode='THA';
9.4.5 聚合函数对于NULL值和空集合
1.count(*) 并不忽略NULL值
2.count(expression) 和count(distinct)忽略掉NULL值。
9.5 对结果分组
找到每个title发送的次数select title,count(*) from personnel group by title;
9.5.1 Group BY and sorting
在MYSQL中,一个group by语句对sorting rows有副面的影响。如果已经使用了group by语句在你的查询中产生了需要的排序,没有必要使用ordery by。使用order by 仅仅是产生一个与仅仅使用group by不同的排序。
9.5.2 选择Group使用having
where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。
where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。
having 子句被限制子已经在SELECT语句中定义的列和聚合表达式上。通常,你需要通过在HAVING子句中重复聚合函数表达式来引用聚合值,就如你在SELECT语句中做的那样。例如:
SELECT A COUNT(B) FROM TABLE GROUP BY A HAVING COUNT(B)>2
having 子句被限制子已经在SELECT语句中定义的列和聚合表达式上。通常,你需要通过在HAVING子句中重复聚合函数表达式来引用聚合值,就如你在SELECT语句中做的那样。例如:
SELECT A COUNT(B) FROM TABLE GROUP BY A HAVING COUNT(B)>2
where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。
having 子句被限制子已经在SELECT语句中定义的列和聚合表达式上。通常,你需要通过在HAVING子句中重复聚合函数表达式来引用聚合值,就如你在SELECT语句中做的那样。例如:
SELECT A COUNT(B) FROM TABLE GROUP BY A HAVING COUNT(B)>2
使用 GROUP BY 的 WITH ROLLUP 字句可以检索出更多的分组聚合信息,它不仅仅能像一般的 GROUP BY 语句那样检索出各组的聚合信息,还能检索出本组类的整体聚合信息。
下面我们的例子对比了普通的 GROUP BY 操作和有 WITH ROLLUP 子句的 GROUP BY 操作的不同:
查询表的内容,是雇员的基础信息表:
[xhtml] view plain copy
<a href="http://lib.csdn.net/base/14" class='replace_word' title="undefined" target='_blank' style='color:#df3434; font-weight:bold;'>MySQL</a>> select * from employee;
+------+--------+------+------+------+
| id | name | dep | pos | sal |
+------+--------+------+------+------+
| 1 | abcd | 01 | 01 | 1000 |
| 2 | eefs | 01 | 02 | 2000 |
| 3 | micro | 02 | 01 | 1500 |
| 4 | cathey | 02 | 02 | 3000 |
| 5 | amy | 03 | 01 | 2500 |
| 6 | lily | 03 | 02 | 2200 |
| 7 | bobo | 01 | 01 | 2000 |
| 8 | gray | 01 | 02 | 1900 |
| 9 | leon | 03 | 02 | 2900 |
| 10 | sun | 02 | 02 | 1900 |
+------+--------+------+------+------+
10 rows in set (0.00 sec)
普通的 GROUP BY 操作,可以按照部门和职位进行分组,计算每个部门,每个职位的工资平均值:
[xhtml] view plain copy
mysql> select dep,pos,avg(sal) from employee group by dep,pos;
+------+------+-----------+
| dep | pos | avg(sal) |
+------+------+-----------+
| 01 | 01 | 1500.0000 |
| 01 | 02 | 1950.0000 |
| 02 | 01 | 1500.0000 |
| 02 | 02 | 2450.0000 |
| 03 | 01 | 2500.0000 |
| 03 | 02 | 2550.0000 |
+------+------+-----------+
6 rows in set (0.02 sec)
如果我们希望再显示部门的平均值和全部雇员的平均值,普通的 GROUP BY 语句是不能实现的,需要另外执行一个查询操作,或者通过程序来计算。如果使用有 WITH ROLLUP 子句的 GROUP BY 语句,则可以轻松实现这个要求:
[java] view plain copy
mysql> select dep,pos,avg(sal) from employee group by dep,pos with rollup;
+------+------+-----------+
| dep | pos | avg(sal) |
+------+------+-----------+
| 01 | 01 | 1500.0000 |
| 01 | 02 | 1950.0000 |
| 01 | NULL | 1725.0000 |
| 02 | 01 | 1500.0000 |
| 02 | 02 | 2450.0000 |
| 02 | NULL | 2133.3333 |
| 03 | 01 | 2500.0000 |
| 03 | 02 | 2550.0000 |
| 03 | NULL | 2533.3333 |
| NULL | NULL | 2090.0000 |
+------+------+-----------+
10 rows in set (0.00 sec)
需要注意的是,使用有 WITH ROLLUP 子句的 GROUP BY 语句时,不能再使用 ORDER BY 语句对结果集进行排序,如果对返回的结果顺序不满意,需要应用程序获得结果后在程序中进行排序。
(select subscriber,email from list1)UNION (select name,address from list2 )UNION(select real_name,email from list3)
9.2.1 Renaming Retrieved Columns相关推荐
- ssas表格模型 权限控制_创建第一个SSAS表格模型数据库
ssas表格模型 权限控制 Considering BI environment, when comparing Multidimensional Vs Tabular model databases ...
- ssas 度量值属性_Analysis Services(SSAS)表格模型–属性和度量
ssas 度量值属性 In this article, a demonstration of the tabular model will try to related multidimensiona ...
- python熊猫图案_熊猫备忘单–适用于数据科学的Python
python熊猫图案 Pandas is arguably the most important Python package for data science. Not only does it g ...
- 时间序列模型预测_时间序列预测,使用facebook先知模型预测股价
时间序列模型预测 1.简介 (1. Introduction) 1.1. 时间序列和预测模型 (1.1. Time-series & forecasting models) Tradition ...
- mpf6_Time Series Data_quandl_更正kernel PCA_AIC_BIC_trend_log_return_seasonal_decompose_sARIMAx_ADFull
In financial portfolios, the returns on their constituent(/kənˈstɪtʃuənt/组成的,构成的) assets depend on a ...
- Python pandas学习总结-万字好文建议收藏
推荐关注↓↓↓↓ pandas是做数据分析非常重要的一个模块,它使得数据分析的工作变得更快更简单.由于现实世界中数据源的格式非常多,但是pandas也支持了不同数据格式的导入方法,所以学习pandas ...
- pandas使用dropna函数删除dataframe中全是缺失值的数据列(drop columns with all missing values in dataframe)
pandas使用dropna函数删除dataframe中全是缺失值的数据列(drop columns with all missing values in dataframe) 目录
- pandas使用str函数和startswith函数,筛选dataframe中不是(not start with)以特定前缀开头的数据列(selecting columns)
pandas使用str函数和startswith函数,筛选dataframe中不是(not start with)以特定前缀开头的数据列(selecting columns not begin wit ...
- R语言为dataframe添加新的数据列(add new columns):使用R原生方法、data.table、dplyr等方案
R语言为dataframe添加新的数据列(add new columns):使用R原生方法.data.table.dplyr等方案 目录 R语言为dataframe
最新文章
- Oracle rowid
- 64 SD配置-交货凭证配置-在交货时定义项目类别确定
- Spark之SparkStreaming理论篇
- 开园第一篇献给找不回来的园子。。
- denied git permission_Git使用之Permission Denied问题解决[2153-Noblog]
- psd imageset转换工具
- python转go_使用Go获取Python版本
- html下拉菜单的写法
- java 文档查看技巧
- 命里有时终须有,命里无时莫强求
- format函数python生成列表_python之自动生成器(持续更新)
- 51单片机最小系统的c语言,89c51单片机最小系统,89c51最小系统原理图的功能详解...
- Openstack 网络模块
- PIXEL-LEVEL SELF-PACED LEARNING FOR SUPER-RESOLUTION
- canOpen学习六之canOpen应用实现主从机PDO循环同步通信
- wxid转扫一扫添加好友
- Springboot毕设项目健康在线服务平台26iy0(java+VUE+Mybatis+Maven+Mysql)
- 示波器X1探头和X10探头
- 实验五——数据库设计实验
- 数据库bigint转为JAVA中的String
热门文章
- [Android] 随时拍图像处理部分总结及源码分享
- img should be PIL Image. Got <class ‘torch.Tensor‘>
- 没想到MySQL还会问这些...
- 阿里云服务器(ECS)CentOS修改yum源为阿里源
- 【Linux】一步一步学Linux——passwd文件详解(107)
- 【Linux】一步一步学Linux——mkdir命令(21)
- 【Linux系统编程】进程间通信--无名管道(pipe)
- 实验一 简单词法分析程序设计
- python就业前景如何_2020年Python就业前景如何?就业岗位多不多?薪资高不高?...
- ucos 消息队列代码详解_用python实现 多进程队的列数据处理详解,零基础记得都收藏哦