4

ここから取った例から、私は正確に何をするのかを理解しようとしてい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列があるとします。次に、このクエリを発行して、部門名ごとの平均給与を取得できます。

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

結果セットを特定の順序で配置する場合は、ORDERBYを使用します。

于 2012-08-16T11:47:07.860 に答える