`
yzl495
  • 浏览: 54154 次
  • 性别: Icon_minigender_1
  • 来自: 赣州
文章分类
社区版块
存档分类
最新评论

group by 两个或以上列的分析

 
阅读更多

首先group by 的简单说明:

   group by 一般和聚合函数一起使用才有意义,比如 count sum avg等,使用group by的两个要素:
   (1) 出现在select后面的字段 要么是是聚合函数中的,要么就是group by 中的.
   (2) 要筛选结果 可以先使用where 再用group by 或者先用group by 再用having

下面看下 group by多个条件的分析:

在SQL查询器输入以下语句
create table test
(
a varchar(20),
b varchar(20),
c varchar(20)
)

insert into test values(1,'a','甲')
insert into test values(1,'a','甲')
insert into test values(1,'a','甲')
insert into test values(1,'a','甲')
insert into test values(1,'a','乙')
insert into test values(1,'b','乙')
insert into test values(1,'b','乙')
insert into test values(1,'b','乙')

第一次查询

select * from test; 结果如下图:

 

结果中 按照b列来分:则是 5个a 3个b.


按照c列来分:则是 4个甲 4个乙.


第二次 按照 b列来分组 代码如下
select   count(a),b from test group by b

第三次 按照 c列来分组 代码如下
select count(a),c from test group by c


第四次 按照 b c两个条件来分组
select count(a),b,c from test group by b,c

第五次 按照 c b 顺序分组
select count(a),b,c from test group by c,b

可以看出 group by 两个条件的工作过程:

先对第一个条件b列的值 进行分组,分为 第一组:1-5, 第二组6-8,然后又对已经存在的两个分组用条件二 c列的值进行分组,发现第一组又可以分为两组 1-4,5


来源:http://hi.baidu.com/w_xiaofeng20xx/item/05a2bf154020b97a1009b5e0

分享到:
评论

相关推荐

    group by + order by

    在数据库查询语言 SQL(Structured Query Language)中,`GROUP BY` 和 `ORDER BY` 是两个非常重要的子句,它们可以帮助我们更高效地管理和展示数据。 #### GROUP BY 子句 `GROUP BY` 主要用于将数据表中的数据...

    SQL GROUP BY 语句详解

    这意味着你可以根据两个或更多列的值来分组数据。例如,如果我们不仅关心客户,还关心订单日期,可以这样写: ```sql SELECT Customer, OrderDate, SUM(OrderPrice) FROM Orders GROUP BY Customer, OrderDate; ```...

    简单讲解sql语句中的group by的使用方法

    SQL中的`GROUP BY`语句是数据库查询中的一个重要部分,它用于将数据按照一个或多个列的值进行分组,以便对每个组执行聚合函数,如`SUM`、`COUNT`、`AVG`和`MAX`等。下面我们将详细讨论`GROUP BY`的使用方法及其相关...

    SqlServer中Group By高级使用--Inner Join分组统计

    Inner Join用于从两个或更多表中返回匹配行,即两个表中存在对应关系的行。假设我们有一个产品表和一个订单表,我们可以使用Inner Join来获取特定客户的所有订单: ```sql SELECT Orders.CustomerID, Customers....

    mysql使用GROUP BY分组实现取前N条记录的方法

    GROUP BY之后如何取每组的前两位下面我来讲述mysql中GROUP BY分组取前N条记录实现方法。 这是测试表(也不知道怎么想的,当时表名直接敲了个aa,汗~~~~): 结果: 方法一: 代码如下:SELECT a.id,a.SName,a.ClsNo...

    group by 后 使用 rollup 子句 总结.doc

    例如,如果在 `GROUP BY` 语句后面指定了两个列 `column1` 和 `column2`,那么 `WITH ROLLUP` 将会产生以下几类分组: 1. 按 `column1` 和 `column2` 进行分组。 2. 按 `column1` 进行分组(忽略 `column2`)。 3. ...

    Python中的groupby分组功能的实例代码

    groupby方法是按照某一列或多列中的值进行分组,将具有相同值的行聚合在一起。在文章提供的示例中,分别展示了按照单一属性('Administrative_level')和多个属性(['Administrative_level', 'Have985'])进行分组的...

    GROUP BY子句(rollup,cube,grouping sets)实例说明

    GROUP BY 子句是 SQL 语言中用于分组数据的关键字,它可以根据一个或多个列对数据进行分组,并对每个分组应用聚合函数,以便计算和输出所需的结果。GROUP BY 子句有多种形式,本文将通过实例来说明 GROUP BY 子句的...

    Sql聚合函数和group by的关系详解.doc

    Sql 聚合函数和 group by 是 SQL 语言中两个非常重要的概念,它们之间存在紧密的联系。那么,什么是聚合函数?什么是 group by?它们之间的关系是什么?在本文中,我们将详细地解释 Sql 聚合函数和 group by 的关系...

    group by 语法大全,内附列子

    ### Group By 语法详解与应用实例 ...通过以上示例可以看出,`GROUP BY`语句结合聚合函数在SQL查询中有着广泛的应用,可以帮助我们高效地处理复杂的数据分析任务。希望本文能为你理解和掌握`GROUP BY`提供帮助。

    处理group by 查询速度太慢的问题 数据量大.doc

    在本实例中,仅仅设置 device_id 和 product_id 两个字段的索引是不够的,需要将 log_time 字段一起设置为联合索引,才能达到理想的查询速度。 知识点5:Query 优化的思路 在优化查询时,需要遵循一定的思路。首先...

    处理group by 查询速度慢的问题.docx

    在优化之前,此表仅对`device_id`和`product_id`两个字段设置了联合索引。执行上述SQL查询耗时接近40分钟。这一问题引起了我们的关注,并开始尝试找出原因并寻找解决方案。 #### 优化过程 **初步测试** 起初,...

    Linq中GroupBy方法的使用总结.

    Linq 中的 GroupBy 方法是对数据进行分组的操作,通常用于对一个或多个字段进行分组,求其总和、均值等。下面我们来详细介绍 Linq 中 GroupBy 方法的使用。 一、基本使用 在 Linq 中,GroupBy 方法的基本使用方式...

    mssql+group by 分页例子

    首先,`GROUP BY`子句用于将数据表中的数据按照一个或多个列进行分组。例如,如果你有一个订单表,你可以按客户ID分组,这样就可以得到每个客户的订单总数。基本的`GROUP BY`语法如下: ```sql SELECT column1, ...

    用C#实现对DataTable的JOIN,GROUP BY,FILTER,UNIONALL,DISTINCT

    用C#实现对DataTable的JOIN,GROUP BY,FILTER,UNIONALL,DISTINCT

    在SQL语言中用Group By子句实现除法.pdf

    在这个例子中,`SUM(salary) OVER ()`计算整个数据集的总工资,而`COUNT(*) OVER ()`计算总行数,两个窗口函数结合就可以计算每个员工工资与公司总平均工资的比例。 当然,在一些数据库系统中,可能需要结合case...

    on与where、group by的用法

    `GROUP BY`子句用于将结果集按照一个或多个列进行分组,并对每组应用聚合函数(如`COUNT`、`SUM`等)。这使得我们可以根据不同的维度对数据进行汇总。 - **基本语法**:`GROUP BY`的基本使用方式如下: ```sql ...

    SQL问题详解之_having_Group by

    GROUP BY子句用于将数据按照一个或多个列进行分组。假设我们有一个包含各国信息的bbc表,字段包括region(地区)、population(人口)和area(面积)。当我们使用`GROUP BY region`时,所有具有相同region值的行将被...

    SQL语句中Group BY 和Rollup以及cube用法

    `GROUP BY`子句是SQL查询中的一个非常重要的部分,它用于将数据表中的行按照一个或多个列进行分组,使得可以对每个分组执行聚合函数(如SUM、COUNT、AVG等)。在数据库管理中,当我们需要对某些特定字段的数据进行...

    oracle_11gR2_08 分组查询GROUP BY,模糊查询LIKE

    当需要从两个或多个表中获取数据时,可以使用`JOIN`子句。`JOIN`有多种类型,包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN)。 **示例分析:** 假设我们有一个班级表`ban_ji`...

Global site tag (gtag.js) - Google Analytics