加入2个表并计算SQL中出现的特定字段数

时间:2014-12-02 05:48:08

标签: sql sql-server select count group-by

我有2张桌子," T_COMMON_COUNTRY"和" T_HEI_STUDENTDATA。"使用左连接我加入了这些表

这是我的查询

SELECT 
    [T_COMMON_COUNTRY].[COUNTRY_ID], 
    [T_COMMON_COUNTRY].[COUNTRY], 
    [T_HEI_STUDENTDATA].[STUDENT_ID]

FROM ([T_COMMON_COUNTRY]

 LEFT JOIN [T_HEI_STUDENTDATA]

 ON [T_COMMON_COUNTRY].[COUNTRY] = [T_HEI_STUDENTDATA].[STDCOUNTRY])

现在我'获得这样的视图

 |   Country ID   |     County      | Student ID |
 |       1        |      USA        |     12     |
 |       1        |      USA        |     5      |
 |       2        |      UK         |     11     |
 |       2        |      UK         |     2      |

我想要计算学生人数(Student_IDs)与国家的关系,

我想得到一个完全像下面的视图

 |   Country ID   |     County      | Students |
 |       1        |      USA        |     2    |
 |       2        |      UK         |     2    |

2 个答案:

答案 0 :(得分:5)

使用COUNT功能生成国家学生计数

试试这个:

SELECT C.[COUNTRY_ID], C.[COUNTRY], COUNT(S.[STUDENT_ID]) AS StudentCount
FROM [T_COMMON_COUNTRY] C
LEFT JOIN [T_HEI_STUDENTDATA] S ON C.[COUNTRY] = S.[STDCOUNTRY]
GROUP BY C.[COUNTRY_ID], C.[COUNTRY];

答案 1 :(得分:0)

使用COUNT功能计算学生人数GROUP BY Country_ID和国家/地区。

 SELECT 
        [T_COMMON_COUNTRY].[COUNTRY_ID], 
        [T_COMMON_COUNTRY].[COUNTRY], 
        COUNT([T_HEI_STUDENTDATA].[STUDENT_ID]) AS Students

    FROM ([T_COMMON_COUNTRY]

     LEFT JOIN [T_HEI_STUDENTDATA]

     ON [T_COMMON_COUNTRY].[COUNTRY] = [T_HEI_STUDENTDATA].[STDCOUNTRY])
    GROUP BY [T_COMMON_COUNTRY].[COUNTRY_ID], [T_COMMON_COUNTRY].[COUNTRY]