sql example 9 -- group, having

sql example 9 – group, having

sql example 9 – group, having

  • group

    truncate table user1;
    
    insert into user1 (id, username) values (1, ‘test1‘);
    insert into user1 (id, username) values (2, ‘test1‘);
    insert into user1 (id, username) values (3, ‘test1‘);
    insert into user1 (id, username) values (4, ‘test1‘);
    insert into user1 (id, username) values (5, ‘test1‘);
    
    insert into user1 (id, username) values (1, ‘test2‘);
    insert into user1 (id, username) values (2, ‘test2‘);
    insert into user1 (id, username) values (3, ‘test2‘);
    insert into user1 (id, username) values (4, ‘test2‘);
    insert into user1 (id, username) values (5, ‘test2‘);
    
    insert into user1 (id, username) values (1, ‘test3‘);
    insert into user1 (id, username) values (2, ‘test3‘);
    insert into user1 (id, username) values (3, ‘test3‘);
    insert into user1 (id, username) values (4, ‘test3‘);
    insert into user1 (id, username) values (5, ‘test3‘);
    
    select * from user1 group by username;
    
    | id | username |
    +----+----------+
    |  1 | test1    |
    |  1 | test2    |
    |  1 | test3    |
    
select * from user1 group by id;
| id | username |
+----+----------+
|  1 | test1    |
|  2 | test1    |
|  3 | test1    |
|  4 | test1    |
|  5 | test1    |

分组实际上就是求集合?

select username, id from user1 group by 1;

1 指的是 username, group by 2 指的是 id (一般不这样用, 好丑陋的用法)

  • having
    相当于 where

    select username, id from user1 group by id;
    
    | username | id |
    +----------+----+
    | test1    |  1 |
    | test1    |  2 |
    | test1    |  3 |
    | test1    |  4 |
    | test1    |  5 |
    
    select username, id from user1 group by id having id in (1, 2, 3);
    
    | username | id |
    +----------+----+
    | test1    |  1 |
    | test1    |  2 |
    | test1    |  3 |
    
    select username from user1 group by id having id in (1, 2, 3);
    
    select username from user1 group by username having id in (1, 2, 3);   # 报错, 没有 id 这个字段
    
时间: 2024-09-30 05:08:37

sql example 9 -- group, having的相关文章

sql中的group by 和 having 用法解析

--sql中的group by 用法解析:-- Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”.--它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理.--注意:group by 是先排序后分组:--举例子说明:如果要用到group by 一般用到的就是“每这个字” 例如说明现在有一个这样的表:每个部门有多少人 就要用到分组的技术select DepartmentID as '部门名称',COUNT(*) a

SQL查询语句 group by后, 字符串合并

原文:SQL查询语句 group by后, 字符串合并 合并列值 --******************************************************************************************* 表结构,数据如下: id value ----- ------ 1 aa 1 bb 2 aaa 2 bbb 2 ccc 需要得到结果: id values ------ ----------- 1 aa,bb 2 aaa,bbb,ccc 即:gr

转载 sql中的group by 和 having 用法解析

sql中的group by 和 having 用法解析 --sql中的group by 用法解析:-- Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”.--它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理.--注意:group by 是先排序后分组:--举例子说明:如果要用到group by 一般用到的就是“每这个字” 例如说明现在有一个这样的表:每个部门有多少人 就要用到分组的技术select Depar

SQL Server 之 GROUP BY、GROUPING SETS、ROLLUP、CUBE

原文:SQL Server 之 GROUP BY.GROUPING SETS.ROLLUP.CUBE 1.创建表 Staff CREATE TABLE [dbo].[Staff]( [ID] [int] IDENTITY(1,1) NOT NULL, [Name] [varchar](50) NULL, [Sex] [varchar](50) NULL, [Department] [varchar](50) NULL, [Money] [int] NULL, [CreateDate] [date

SQL server 关于 GROUP BY 详细讲解和用法

1. Group By 语句简介: Group By语句从英文的字面意义上理解就是"根据(by)一定的规则进行分组(Group)".它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理. P.S. 这里真是体会到了一个好的命名的力量,Group By从字面是直接去理解是非常好理解的.恩,以后在命名的环节一定要加把劲:).话题扯远了. 2. Group By 的使用: 上面已经给出了对Group By语句的理解.基于这个理解和SQL Server 2

SQL 中的group by (转载)

概述 原始表 简单Group By Group By 和 Order By Group By中Select指定的字段限制 Group By All Group By与聚合函数 Having与Where的区别 Compute 和 Compute By 1.概述 “Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理. 2.原始表 3.简单Group By 示例1 select 类别,

LINQ体验(7)——LINQ to SQL语句之Group By/Having和Exists/In/Any/All/Contains

我们继续讲解LINQ to SQL语句,这篇我们来讨论Group By/Having操作符和Exists/In/Any/All/Contains操作符. Group By/Having操作符 适用场景:分组数据,为我们查找数据缩小范围. 说明:分配并返回对传入参数进行分组操作后的可枚举对象.分组:延迟 1.简单形式: var q = from p in db.Products group p by p.CategoryID into g select g; 语句描述:使用Group By按Cat

sql小技巧 group by datetime类型字段,只取其中的日期部分

工作中经常会遇到,要在sql中查询报表,查询结果要求按照日期来罗列, 或按照天, 或按照月,年. 这个时候我们经常会苦恼,datetime是精确到毫秒的,如果单纯的group by datetime就会导致结果不正确. 这是我们可以利用convert函数: SELECT convert(varchar(10),CreateDate,120) ,var1 ,var2 FROM Table GROUP BY convert(varchar(10),CreateDate,120) ASC 第一个参数是

SQL语句:Group By总结

1. Group By 语句简介: Group By语句从英文的字面意义上理解就是"根据(by)一定的规则进行分组(Group)".它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理. P.S. 这里真是体会到了一个好的命名的力量,Group By从字面是直接去理解是非常好理解的.恩,以后在命名的环节一定要加把劲:).话题扯远了. 2. Group By 的使用: 上面已经给出了对Group By语句的理解.基于这个理解和SQL Server 2