-2

以下のクエリがどのように処理されるかわかりません。私はこのクエリを読んで、どのような出力が得られるかを知っています。しかし、それが概念的にどのように処理されるかを知りたかったのです。

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

わかりました、これは私がそれがどのように機能すると思うかです(私が間違っている場合は教えてください)-

最初に、タイプ (First Name, LastName) のペアが生成されます。つまり、(f1,n1)(f1,n2)(f2,n5)(f3,n5) などです。多くの人が同じ名前や姓を持つことができます。名前。

次に、そのようなペアごとに、Count(---) は達成された証明書の数をカウントします。

(...はい、まったく同じ名前の従業員が1人の従業員と見なされることは知っていますが、それは私にとって重要ではありません)

4

1 に答える 1

1

SQL Express 2008についてはわかりませんが、これは一般的にどのように機能するかです:

最初に結合が作成されます

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

次に、グループが作成されます。

group by FirstName, LastName

姓と名が同じ行はすべて同じグループに分類されます

出力は、グループごとに 1 つの行になります: グループ内の名、姓、および行数

select FirstName, LastName, COUNT(CertificateId) as CertificatesAcheived
于 2012-12-29T10:23:47.300 に答える