4

here的一个例子中,我试图了解究竟GROUP BY做了什么:

鉴于此employee表:

+-------+----------+--------+------------+
| Empid | Empname  | Salary | DOB        |
+-------+----------+--------+------------+
| 1     | Habib    | 2014   | 2004-12-02 |
| 2     | Karan    | 4021   | 2003-04-11 |
| 3     | Samia    | 22     | 2008-02-23 |
| 4     | Hui Ling | 25     | 2008-10-15 |
| 5     | Yumie    | 29     | 1999-01-26 |
+-------+----------+--------+------------+

执行后mysql> select * from employee group by empname;

我们得到:

+-------+----------+--------+------------+
| Empid | Empname  | Salary | DOB        |
+-------+----------+--------+------------+
| 1     | Habib    | 2014   | 2004-12-02 |
| 4     | Hui Ling | 25     | 2008-10-15 |
| 2     | Karan    | 4021   | 2003-04-11 |
| 3     | Samia    | 22     | 2008-02-23 |
| 5     | Yumie    | 29     | 1999-01-26 |
+-------+----------+--------+------------+

那么,这是否意味着 GROUP BY 只是按键对表进行排序?

谢谢

4

1 回答 1

13

GROUP BY 启用摘要。具体来说,它控制对 COUNT()、SUM()、AVG()、MIN()、MAX() 等汇总函数的使用。在您的示例中没有太多要总结的内容。

但是,假设您有一个 Deptname 列。然后您可以发出此查询并按 Deptname 获取平均工资。

SELECT AVG(Salary) Average,
       Deptname
  FROM Employee
 GROUP BY Deptname
 ORDER BY Deptname

如果您希望您的结果集按特定顺序排列,请使用 ORDER BY。

于 2012-08-16T11:47:07.860 回答