假设我有两个表,一个是A,第二个是B.A有主键Aid,B有包含Aid的外键B_foreignid,即表A主键和表B包含多个Aid作为外键。所以我的问题是如何分组通过Aid主键记录从表B提取
如果我正确理解了您的问题,是否要按外键对记录进行分组?
假设有一个表Employee:
| EmployeeId | EmployeeName | Salary | DepartmentId
| 1 | John | 500 | 1
| 2 | Robert | 400 | 3
| 3 | John | 350 | 2
| 4 | Robert | 200 | 2
| 5 | John | 600 | 1
和表部:
| DepartmentId | DepartmentName
| 1 | IT
| 2 | Sales
| 3 | Accounting
因此,要将“雇员”表中的数据按部门划分(外键),您应该选择是否需要汇总功能,例如,找到每个部门的雇员人数,其工资总额,每个部门的最低和最高工资以及以此类推。
要获取每个部门的工资总额,可以使用查询:
SELECT SUM(Salary) AS 'Total Salary', DepartmentName AS 'Department'
FROM Employee e
INNER JOIN Department d ON e.DepartmentId d.DepartmentId
ORDER BY DepartmentName;
对于上述给定数据的查询结果将是:
| Total Salary | Department
| 400 | Accounting
| 1100 | IT
| 550 | Sales
大多数情况下,当您按某些条件对数据进行分组时,您希望与其一起使用聚合函数,但并非总是如此。
当您想使用聚合函数时:
当您不需要它们时:
但是,如果您只是想按某些条件对数据进行排序,以便在将它们分组时可以使用“ ORDER BY”,对于上面的示例,它看起来像这样:
SELECT EmployeeName AS 'Employee', DepartmentId AS 'Department'
FROM Employee
ORDER BY DepartmentId;
结果将是这样的:
| Employee | Department
| John | 1
| John | 1
| John | 2
| Robert | 2
| Robert | 3
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句