我需要一个SQL语句,它返回具有特定值的表中的行数

Jus*_*tin 0 sql t-sql sql-server count sql-server-2008

我敢肯定,这将等同于COUNT语句的使用,但我不擅长SQL.

这是我的SQL表.

团队表:

TeamId     TeamName           RosterSpots 
----------------------------------------------- 
1          Miami Heat         12 
2          New York Knicks    10 
Run Code Online (Sandbox Code Playgroud)

球员表:

PlayerId   PlayerName         TeamId 
------------------------------------ 
1          Dwyane Wade        1 
2          Chris Bosh         1 
3          LeBron James       1 
4          Amar'e Stoudemire  2 
Run Code Online (Sandbox Code Playgroud)

什么是SQL(Miscroft SQL Server 2008)将返回每个团队的玩家数量?

产量

Team Name         PlayerCount
-----------------------------
Miami Heat        3
New York Knicks   1
Run Code Online (Sandbox Code Playgroud)

我还想返回RosterSpots和Team Id,但实际上只是上面的COUNT部分是我所困惑的.

OMG*_*ies 5

使用:

   SELECT t.teamid,
          t.teamname,
          COALESCE(COUNT(p.playerid), 0) AS playercount,
          t.rosterspots
     FROM TEAMS t
LEFT JOIN PLAYERS p ON p.teamid = t.teamid
 GROUP BY t.teamid, t.teamname, t.rosterspots
Run Code Online (Sandbox Code Playgroud)

  • LEFT JOIN确保您在没有任何球员的情况下获得球队 (3认同)