MySQL子查詢在數據匯總中的應用非常廣泛,它們可以幫助我們更高效地處理和分析數據。子查詢是嵌套在主查詢中的查詢,可以從一個或多個表中檢索數據,并在主查詢中使用這些數據。以下是一些使用子查詢進行數據匯總的常見場景:
SELECT SUM(子查詢的結果) FROM 表名;
例如,計算所有部門的員工薪資總和:
SELECT SUM(salary) FROM employees WHERE department_id = (SELECT id FROM departments);
SELECT AVG(子查詢的結果) FROM 表名;
例如,計算每個部門的平均薪資:
SELECT department_id, AVG(salary) FROM employees GROUP BY department_id;
SELECT MAX(子查詢的結果), MIN(子查詢的結果) FROM 表名;
例如,找到每個部門的最高和最低工資:
SELECT department_id, MAX(salary), MIN(salary) FROM employees GROUP BY department_id;
SELECT * FROM 表名 WHERE 子查詢的結果;
例如,找到薪資高于平均薪資的員工:
SELECT * FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);
SELECT * FROM 表1 子查詢1 JOIN 表2 子查詢2 ON 條件;
例如,找到每個部門的最高薪資員工:
SELECT e1.*, d.name AS department_name
FROM employees e1
JOIN departments d ON e1.department_id = d.id
WHERE e1.salary = (
SELECT MAX(e2.salary) FROM employees e2 WHERE e2.department_id = e1.department_id
);
總之,MySQL子查詢在數據匯總中的應用可以幫助我們更靈活地從表中提取和計算數據,提高查詢效率和數據可視化效果。