多级分组如何工作?

时间:2012-12-29 10:15:18

标签: sql sql-server-express sql-server-2008-express

我不确定如何处理以下查询。我读了这个查询,我知道它会给我什么输出。但是,我想知道它是如何在概念上处理的。

select FirstName, LastName, COUNT(CertificateId) as CertificatesAcheived
from Employee left join [Achivements]
on Employee.EmpID = [Achivements].EmpID
group by FirstName, LastName

好的,这就是我认为它的工作原理(告诉我,如果我错了) -

首先,生成类型(名字,姓氏)的对,即(f1,n1)(f1,n2)(f2,n5)(f3,n5) 许多人可以使用相同的名字和/或姓氏。

然后,对于每个这样的对,Count(---)将计算所获得的证书数量。

(...是的,我知道具有完全相同名称的员工将被视为一名员工,但这对我来说并不重要)

1 个答案:

答案 0 :(得分:1)

不确定sql express 2008,但这是它通常的工作原理:

首先创建一个连接

from Employee left join [Achivements] on Employee.EmpID = [Achivements].EmpID

然后创建组:

group by FirstName, LastName

具有相同名字和姓氏的所有行将属于同一组

每个组的输出将是一行:firstname,lastname和组中的行数

select FirstName, LastName, COUNT(CertificateId) as CertificatesAcheived