【发布时间】:2018-02-02 16:58:51
【问题描述】:
我有这样的sql查询
select fname,lname,Id from Employee e
inner join Address a on e.Id=a.EmployeeId
我还想在选择列表中包括地址表中与员工表中每一行匹配的行数。
例如。
如果 Employee With FNAme mandar 有两个地址行,那么在选择中我应该看到
曼达尔 J 1 2
我知道我可以使用 groupby 来做到这一点,但我在想这是否是只获取匹配行数的理想方法。子查询可能对性能不利。
select fname,lname,Id,count(a.Id) from Employee e
inner join Address a on e.Id=a.EmployeeId
groupby a.EmployeeId
那么我还必须包含fname,lname , Id in the
groupby 列表,这可能不干净。
【问题讨论】:
-
您通常按您选择的列进行分组,除了那些作为设置函数的参数的列。在你的情况下:
GROUP BY fname,lname,Id.
标签: sql sql-server