为了命名一个列名。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相关推荐

  1. ssas表格模型 权限控制_创建第一个SSAS表格模型数据库

    ssas表格模型 权限控制 Considering BI environment, when comparing Multidimensional Vs Tabular model databases ...

  2. ssas 度量值属性_Analysis Services(SSAS)表格模型–属性和度量

    ssas 度量值属性 In this article, a demonstration of the tabular model will try to related multidimensiona ...

  3. python熊猫图案_熊猫备忘单–适用于数据科学的Python

    python熊猫图案 Pandas is arguably the most important Python package for data science. Not only does it g ...

  4. 时间序列模型预测_时间序列预测,使用facebook先知模型预测股价

    时间序列模型预测 1.简介 (1. Introduction) 1.1. 时间序列和预测模型 (1.1. Time-series & forecasting models) Tradition ...

  5. 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 ...

  6. Python pandas学习总结-万字好文建议收藏

    推荐关注↓↓↓↓ pandas是做数据分析非常重要的一个模块,它使得数据分析的工作变得更快更简单.由于现实世界中数据源的格式非常多,但是pandas也支持了不同数据格式的导入方法,所以学习pandas ...

  7. pandas使用dropna函数删除dataframe中全是缺失值的数据列(drop columns with all missing values in dataframe)

    pandas使用dropna函数删除dataframe中全是缺失值的数据列(drop columns with all missing values in dataframe) 目录

  8. pandas使用str函数和startswith函数,筛选dataframe中不是(not start with)以特定前缀开头的数据列(selecting columns)

    pandas使用str函数和startswith函数,筛选dataframe中不是(not start with)以特定前缀开头的数据列(selecting columns not begin wit ...

  9. R语言为dataframe添加新的数据列(add new columns):使用R原生方法、data.table、dplyr等方案

    R语言为dataframe添加新的数据列(add new columns):使用R原生方法.data.table.dplyr等方案 目录 R语言为dataframe

最新文章

  1. Oracle rowid
  2. 64 SD配置-交货凭证配置-在交货时定义项目类别确定
  3. Spark之SparkStreaming理论篇
  4. 开园第一篇献给找不回来的园子。。
  5. denied git permission_Git使用之Permission Denied问题解决[2153-Noblog]
  6. psd imageset转换工具
  7. python转go_使用Go获取Python版本
  8. html下拉菜单的写法
  9. java 文档查看技巧
  10. 命里有时终须有,命里无时莫强求
  11. format函数python生成列表_python之自动生成器(持续更新)
  12. 51单片机最小系统的c语言,89c51单片机最小系统,89c51最小系统原理图的功能详解...
  13. Openstack 网络模块
  14. PIXEL-LEVEL SELF-PACED LEARNING FOR SUPER-RESOLUTION
  15. canOpen学习六之canOpen应用实现主从机PDO循环同步通信
  16. wxid转扫一扫添加好友
  17. Springboot毕设项目健康在线服务平台26iy0(java+VUE+Mybatis+Maven+Mysql)
  18. 示波器X1探头和X10探头
  19. 实验五——数据库设计实验
  20. 数据库bigint转为JAVA中的String

热门文章

  1. [Android] 随时拍图像处理部分总结及源码分享
  2. img should be PIL Image. Got <class ‘torch.Tensor‘>
  3. 没想到MySQL还会问这些...
  4. 阿里云服务器(ECS)CentOS修改yum源为阿里源
  5. 【Linux】一步一步学Linux——passwd文件详解(107)
  6. 【Linux】一步一步学Linux——mkdir命令(21)
  7. 【Linux系统编程】进程间通信--无名管道(pipe)
  8. 实验一  简单词法分析程序设计
  9. python就业前景如何_2020年Python就业前景如何?就业岗位多不多?薪资高不高?...
  10. ucos 消息队列代码详解_用python实现 多进程队的列数据处理详解,零基础记得都收藏哦