mysql 分组和排序

时间:2022-12-16 09:50:59

 

mysql> select * from table1;
+----------+------------+-----+---------------------+
| name_new | transactor | pid | order_date          |
+----------+------------+-----+---------------------+
| 1hahha   | 1xiaohong  |   1 | 2019-08-04 20:45:47 |
| 2hahha   | 2xiaohong  |   2 | 2019-08-04 20:45:57 |
| 3hahha   | 3xiaohong  |   3 | 2019-08-04 20:46:02 |
| 4hahha   | 4xiaohong  |   4 | 2019-08-04 20:46:05 |
| 3hahha   | bob        |   5 | 2019-08-04 20:46:08 |
| 3hahha   | lee        |   6 | 2019-08-04 20:46:12 |
| 3hahha   | lee        |   7 | 2019-08-04 21:56:01 |
| 3hahha   | lee        |   8 | 2019-08-04 21:56:10 |
| 3hahha   | bob        |   9 | 2019-08-04 21:56:18 |
| 3hahha   | bob        |  10 | 2019-08-04 21:56:26 |
+----------+------------+-----+---------------------+
10 rows in set (0.00 sec)


mysql> select transactor,count(*) as num from table1 where pid >=4 group by transactor;
+------------+-----+
| transactor | num |
+------------+-----+
| 4xiaohong  |   1 |
| bob        |   3 |
| lee        |   3 |
+------------+-----+
3 rows in set (0.00 sec)


mysql> select transactor,count(*) as num from table1 where pid >=4 group by transactor with rollup;
+------------+-----+
| transactor | num |
+------------+-----+
| 4xiaohong  |   1 |
| bob        |   3 |
| lee        |   3 |
| NULL       |   7 |
+------------+-----+
4 rows in set (0.00 sec)


mysql> select transactor,count(*) as num from table1 where pid >=4 group by transactor with rollup having num>=3 order by transactor;
ERROR 1221 (HY000): Incorrect usage of CUBE/ROLLUP and ORDER BY


mysql> select transactor,count(*) as num from table1 where pid >=4 group by transactor having num>=3 order by transactor;
+------------+-----+
| transactor | num |
+------------+-----+
| bob        |   3 |
| lee        |   3 |
+------------+-----+
2 rows in set (0.00 sec)


mysql> select transactor,count(*) as num from table1 where pid >=4 group by transactor having num>=3 order by transactor desc;
+------------+-----+
| transactor | num |
+------------+-----+
| lee        |   3 |
| bob        |   3 |
+------------+-----+
2 rows in set (0.00 sec)