HAVING语句通常与GROUP BY语句联合使用,用来过滤由GROUP BY语句返回的记录集。
HAVING语句的存在弥补了WHERE关键字不能与聚合函数联合使用的不足。
语法:
SELECT column1, column2, ... column_n, aggregate_function (expression)FROM tablesWHERE predicatesGROUP BY column1, column2, ... column_nHAVING condition1 ... condition_n;
同样使用本文中的学生表格,如果想查询平均分高于80分的学生记录可以这样写:
SELECT ...
下列 SELECT 语句使用简单 COMPUTE 子句生成 titles 表中 price 及 advance 的求和总计:
USE pubsSELECT type, price, advanceFROM titlesORDER BY typeCOMPUTE SUM(price), SUM(advance)
下列查询在 COMPUTE 子句中加入可选的 BY 关键字,以生成每个组的小计:
USE pubsSELECT type, price, advanceFROM titlesORDER BY typeCOMPUTE SUM(price), SUM(advance) BY type
此
SELECT 语句的结果用12
个结果集返回,六个组中的...
SELECT * FROM( SELECT [SPID] ,[PH1] ,[PH1_Code] ,[ProjectName] ,ROW_NUMBER() OVER(PARTITION BY [SPID] ORDER BY [SPID]) RowNum FROM( SELECT a.[SPID] ,b.[ProjectName] ,b.[PH1] AS ...
MySQL中group_concat函数
完整的语法如下:
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator 分隔符])
基本查询
Sql代码 ?select * from aa; +------+------+| id| name |+------+------+|1 | 10||1 | 20||1 | 20||2 | 20||3 | 200 ||3 | 500 |+------+------+6 rows in set (0.00 sec)
以id分组,把name字段的值打印在一行,逗号分隔(默认)
Sql代码 ?select id,group_concat(name) from aa...
distinct
a.[ProjectID],
a.[ProjectName]
from
projecttable as a得出的结果为其实想要的数据,只是不同的ProjectID所对应的ProjectName
修改sql语句为select
distinct
a.[ProjectID],
a.[ProjectName]
from
projecttable as a
group by a.[ProjectID]
group by的SQL语句标签:本文系统来源:http://www.cnblogs.com/chucklu/p/4522906.html
标签: datepart函数sql分别用日期月年 分组group by 分组
2013-12-26 15:31 20764人阅读 评论(1) 收藏 举报分类: SQL Server(21)
版权声明:本文为博主原创文章,未经博主允许不得转载。[sql] view plain copy--以2013-12-10 12:56:55为例
--convert(nvarchar(10),CreateDate,120) => 2013-12-10
--DATEPART(month,CreateDate) => 12
--DATEPART(year,CreateDate) => 2013--还可以这样
--年
s...
以下是一个简单的模型读取程序:#include <osgDB/ReadFile>
#include <osgViewer/Viewer>
#include <osg/Node>
void main()
{osgViewer::Viewer viewer;osg::Group *root = new osg::Group();root->addChild(osgDB::readNodeFile("glider.osg"));root->addChild(osgDB::readNodeFile("osgcool.osgt"));viewer.setSceneData(root);viewer.realize();viewer.run();
}PS: osg数据包中并无 osgcool.osg 这个文件,只有osgcool.osgt...
1、概述
“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。2、原始表3、简单Group By
示例1
select 类别, sum(数量) as 数量之和
from A
group by 类别
返回结果如下表,实际上就是分类汇总。4、Group By 和 Order By
示例2
select 类别, sum(数量) AS 数量之和
from A
group by 类别
order by sum(数量) desc...
a.video_id, SUM(`is_play`) as total
FROM `tab_video_info` as a INNER JOIN `tab_play_record` as b ON a.video_id = b.video_id
GROUP BY a.video_id
ORDER BY total DESC
LIMIT 0 , 40;统计结果
INNER JOIN 语法:
INNER JOIN 连接两个数据表的用法:SELECT * FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号
INNER JOIN 连接三个数据表的用法:SELECT * FROM (表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOI...
distinct简单来说就是用来去重的,而group by的设计目的则是用来聚合统计的,两者在能够实现的功能上有些相同之处,但是2者的性能差距很大
对于一个84万数据量的表,count(distinct(XXX))的查询需要20s,而group by仅需1s,性能相差20倍
原理分析:
distinct方式就是两两对比,需要遍历整个表,大多数情况下都会导致对最终结果集进行一次排序;
group by分组类似先建立索引再查索引,所以两者对比,小表distinct快,不用索引。大表...
我有两个表,一个存储用户,另一个存储用户的电子邮件地址.
>表格用户:(userId,用户名等)>表userEmail:(emailId,userId,电子邮件)
我想做一个查询,使我可以获取最新的电子邮件地址以及用户记录.我基本上是在寻找一个说FIRST ORDER BY userEmail.emailId DESC
THEN GROUP BY userEmail.userId这可以通过以下方式完成:SELECT users.userId
, users.username
, (SELECT userEmail.emailFROM userEmailWHERE userEmail.userId = user...
use master2 drop database helloworld3 4 5 --创建一个数据库6 create database helloworld7 8 9
10 --用helloworld1这个数据库
11 use helloworld
12
13 --创建一个表格teacher
14 create table Teacher
15 (
16 Id int primary key identity(1,1),
17 Name nvarchar(10),
18 Class nchar(2),
19 score float
20 )
21
22 create table Location
23 (
24 Class nchar(2),
25 location nvarchar(5)
26 )
2...
group by 的执行的过程,先执行select 的操作返回一个程序集,然后去执行分组的操作,这时候他将根据group by 后面的字段进行分组,并且将相同的字段并称一列数据,如果group by 后面没有这个字段的话就要分成好多的数据。但是分组就只能将相同的数据分成两列数据,而一列中又只能放入一个字段,所以那些没有进行分组的数据系统不知道将数据放入哪里,所以就出现此错误目前一种分组情况只有一条记录,一个数据格是无法放入多个数值的...
count group by SQL如下
selectcount(*)
from(selectmac_macaddrfromtestmacgroup by1) foo对于不同记录数较大的情景(1000万条记录中,有300多万条不同记录),查询时间(单位毫秒)如下表所示。query/字段类型macaddrbiginttextcount distinct
24668.023
13890.051
149048.911count group by
32152.808
25929.555
159212.700对于不同记录数较小的情景(1000万条记录中,只有1万条不同记录),查询时间(单位毫秒)如下表所示。qu...
Oracle中group by用法
not a GROUP BY expression异常产生是因为group by用法的问题。 在使用group by 时,有一个规则需要遵守,即出现在select列表中的字段,如果没有在组函数中,那么必须出现在group by 子句中。(select中的字段不可以单独出现,必须出现在group语句中或者在组函数中。) 否则就会出现错误。
在select 语句中可以使用group by 子句将行划分成较小的组,一旦使用分组后select操作的对象变为各个分组后的数据,使...