SQL选择计数语句

时间:2014-10-02 11:06:39

标签: sql-server

我有两个表,一个用于Employees,第二个用于记录。我希望获得每位员工的总条目,并按最大总条目订购结果,如:

Daniel 3  
David  1 

tblEmployee:
EID Name
1   Daniel
2   David

tblEntry:
ID  Column1  EID
1   XX        1 
2   XX        1 
3   XX        2 
4   XX        1 

3 个答案:

答案 0 :(得分:2)

试试这个:

select emp.EID,emp.Name,COUNT(etr.EID)
as total_entries from Employee emp join Entry etr
on emp.EID=etr.EID
group by emp.EID,emp.Name

答案 1 :(得分:0)

您必须使用group by

select count(*) from tblEmployee ee, tblEntry e where ee.eid = e.eid group by ee.name

答案 2 :(得分:0)

这有几个变种,你没有说你正在使用的SQL Server版本,但我喜欢这样做:

;
using A
as (
   select  EID
      ,    RecordCount = COUNT(*)
   from    tblEntry
   group by 
           EID
)
select  a.EID
   ,    e.Name
   ,    a.RecordCount
from    A
    join tblEmployee e
        on A.EID = e.EID
order by 
        RecordCount desc

我喜欢这样做而不是加入然后总结,因为你只需要对最小数量的字段进行分组。 EID中的tblEntry可能已经有一个索引,而Name中的tblEmployee可能不会。