当前位置:Gxlcms > 数据库问题 > SQL -- group, having

SQL -- group, having

时间:2021-07-01 10:21:17 帮助过:2人阅读

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 这个字段

SQL -- group, having

标签:

人气教程排行