MySQL通過使用分組可以將結(jié)果按照某個或某些字段進(jìn)行分類,但是默認(rèn)情況下分組結(jié)果只會顯示分組后的字段和聚合函數(shù)結(jié)果。如果你還需要在分組結(jié)果中顯示其他字段的值,那么就需要使用MySQL中的子查詢或者JOIN操作。
下面我們來看一個例子:
SELECT department, SUM(salary) AS total_salary, AVG(age) AS average_age, FROM employee GROUP BY department;
以上代碼會按照部門對員工表進(jìn)行分組,并且計算每個部門員工的總薪水和平均年齡。但是,如果我們還想知道每個部門的最高薪水是多少,就需要使用子查詢或者JOIN操作:
SELECT e.department, e.total_salary, e.average_age, m.max_salary, m.employee_name FROM (SELECT department, SUM(salary) AS total_salary, AVG(age) AS average_age, FROM employee GROUP BY department) e JOIN (SELECT department, MAX(salary) AS max_salary, employee_name FROM employee) m ON e.department = m.department;
在以上代碼中,我們首先使用子查詢計算出部門的總薪水和平均年齡;然后我們使用JOIN操作將員工表中每個部門的最高薪水和員工姓名與分組結(jié)果關(guān)聯(lián)起來,并在SELECT語句中顯示這些字段的值。
上述例子只是展示了如何在分組結(jié)果中顯示單個字段的值,如果需要顯示多個字段的值,只需要在SELECT語句中添加相應(yīng)的字段即可。