2014-12-02 33 views
5

我有2個表,「T_COMMON_COUNTRY」和「T_HEI_STUDENTDATA」。使用LEFT JOIN我加入這些表加入2個表並計算SQL中發生特定字段的次數

這是我的查詢

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 | 

回答

4

使用COUNT函數生成countrywise學生數

試試這個:

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]; 
+0

多數民衆贊成在工作很好,以前我試過伯爵,謝謝很多 – kez 2014-12-02 05:52:06

+0

@kez你最歡迎... – 2014-12-02 05:54:02

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]