SQL -- group, having

SQL – group, having

SQL – group, having

Table of Contents

  • 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-10-11 05:06:47

SQL -- group, having的相关文章

SQL GROUP BY 语句

合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句. GROUP BY 语句 GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组. SQL GROUP BY 语法 SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name SQL GROUP BY 实例 我们拥有下面这个 "Or

LINQ TO SQL ——Group by

原文:LINQ TO SQL --Group by 分组在SQL中应用的十分普遍,在查询,统计时都有可能会用到它.LINQ TO SQL中同样具备group的功能,这篇我来讲下LINQ TO SQL中关于group的用法. 说明: 1:group 不一定要用到多表查询中,单表查询也是可以的. 2:基本语法: 1>:group 分组后要取的字段或者是对象; 2>:by 分组对象,可以是一列也可以是多列: 3>:into 结果集对象. 3:group的分类,这里分为单列分组,和多列分组.  

SQL GROUP BY 中的TOP N

一个示例表test(select * from test): id gid    age    username1 1      11     zhangsan2 1      13     zhangsan3 1      15     lisi4 1      10     wangwu5 2      20     liusanjie6 2      23     wumingshi7 1      10     hh 按gid分组取每组第一个数据的SQL: SELECT * FROM t

SQL Group By 子句详解

合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句. GROUP BY 语句 GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组. SQL GROUP BY 语法 SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name SQL GROUP BY 实例 我们拥有下面这个 "Or

SQL-W3School-函数:SQL GROUP BY 语句

ylbtech-SQL-W3School-函数:SQL GROUP BY 语句 1.返回顶部 1. 合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句. GROUP BY 语句 GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组. SQL GROUP BY 语法 SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value

SQL: group by以后如何count?

根据网上的资料和自己测试小结一下: 1. 当表数据量很庞大, 需要使用sql的limit功能来分页时, 需要发送两条sql才能实现分页 SELECT * FROM tablename WHERE conditions LIMIT pagestart, pagesize 以及 SELECT COUNT(*) FROM tablename WHERE conditions 其中第二条是在UI上显示总结果数量以及进行分页的操作; 2. 但是, 如果查询还需要使用到 GROUP BY的话, 这个时候第二

C# Linq to SQL — Group by

需求是需要统计数据库中表某一列的总数量,同时以List的形式返回到UI层. Linq to SQL中的Group by用法如下: IList<Unit.HandleCountClass> result; result = (from a in db.handleinfo_users group a by a.han_Server into g select new HandleCountClass { type = g.Key, Handlecount = g.Count() }).ToLis

SQL group by分组查询(转)

本文导读:在实际SQL应用中,经常需要进行分组聚合,即将查询对象按一定条件分组,然后对每一个组进行聚合分析.创建分组是通过GROUP BY子句实现的.与WHERE子句不同,GROUP BY子句用于归纳信息类型,以汇总相关数据.GROUP BY的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理. 在SQL Server中使用的分组查询是ORDER BY子句,使用ORDER BY子句要同聚合函数配合使用才能完成分组查询,在SELECT查询的字段中如果字段没有使用

SQL group by分组查询

本文导读:在实际SQL应用中,经常需要进行分组聚合,即将查询对象按一定条件分组,然后对每一个组进行聚合分析.创建分组是通过GROUP BY子句实现的.与WHERE子句不同,GROUP BY子句用于归纳信息类型,以汇总相关数据.GROUP BY的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理. 在SQL Server中使用的分组查询是ORDER BY子句,使用ORDER BY子句要同聚合函数配合使用才能完成分组查询,在SELECT查询的字段中如果字段没有使用