2013-05-17 63 views
0

我遇到了一個問題,我寫了一個腳本,該腳本查找在多個學校中的學生,並且即時獲取該學校下的每個班級的重複記錄。如何按單個值對類似記錄進行分組

問題是學生們共享相同的唯一主鍵,所以我無法按這個分組。而且我不能按學校或班級進行分組,因爲這會消除其他學生。

基本上我想根據學校將每個學生的所有記錄分組,以便每個學生每個學校只有1條記錄。

我真的不在乎班上有什麼班級表演,因爲我真的很想找到在一所學校上市的學生。

例如

id first Last Class School 
22  mike  bundy 1  tan 
22  mike  bundy 2  tan 
22  mike  bundy 3  light 

我想組下來到這個

id first Last Class School 
22  mike  bundy 1  tan 
22  mike  bundy 3  light 
+0

這是否意味着你根本不關心Class字段或者你想要最低的類值?你能更簡潔一點嗎? –

+0

你認爲使用不同? – varun

+0

我根本不在乎班級領域 - 但在加入時需要找到學生與哪個學校相關聯。 – mmSQL

回答

1

你可以簡單的使用GROUP BY子句,以獲得單個記錄爲每所學校。 Like

SELECT 
     user.user_id, 
     user.last_name, 
     user.first_name, 
     student.sis_id, 
     organization.`NAME`AS school, 
     count(*) as Count 
    FROM 
     user 
    JOIN student ON user.user_id = student.user_id 
    JOIN x_user_group ON _user.user_id = x_user_group.user_id 
    JOIN group ON _x_user_group.group_id = group.group_id 
    JOIN organization ON group.owner_id = organization.organization_id 
Group by 
     user.user_id, 
     user.last_name, 
     user.first_name, 
     student.sis_id, 
     school 
Order by 
     user.last_name, 
     user.first_name 

使用聚合函數計數作爲group by使用。只是在結果集中忽略它。現在你每個學校都會有一名學生。

+0

這沒有奏效......它返回了相同的結果集 – mmSQL

+0

不要在select和group by中添加Class。那麼它將工作 –

+0

這是行得通的!謝謝..所以我想小組必須下到學校級別 – mmSQL

相關問題