因此,這個問題可能已經得到解答,但搜索甚至詢問它有點困難。SQL Server - 選擇表中的所有值而不在GROUP BY中
我想查詢一個表並以多種方式對其進行過濾。在下面的例子中,我想知道每個部門的第一名員工是誰。
例見下表Table A
employee_id | dept_id | start_date | name | age | sex
1 | 1 | 1/5/2000 | Bill | 25 | m
2 | 2 | 2/5/2000 | Biff | 30 | m
3 | 2 | 3/6/2002 | Gil | 31 | m
4 | 2 | 3/7/2002 | Mar | 27 | f
5 | 3 | 1/5/2000 | Tina | 24 | f
6 | 3 | 1/5/2000 | Lin | 21 | f
所以,如果我做SELECT dept_id, min(start_date) from Table A GROUP BY dept_id ORDER BY min(start_date)
我會得到
dept_id | start_date
1 | 1/5/2000
2 | 2/5/2000
3 | 1/5/2000
哪個是正確的信息,但我需要其他列。我不能將它們添加到SELECT語句中,因爲它們不在GROUP BY中,我不能將它們添加到GROUP BY中,因爲那樣我就不會得到正確的結果。
此評論的回答我的問題,但不完全SQL Select Distinct Values, but order by a different value ,因爲我試圖做一個聯接內的子查詢,並在SELECT中添加字段,但它仍然希望字段在GROUP BY。
請告知
編輯: 我希望得到的結果是
employee_id | dept_id | start_date | name | age | sex
1 | 1 | 1/5/2000 | Bill | 25 | m
2 | 2 | 2/5/2000 | Biff | 30 | m
5 | 3 | 1/5/2000 | Tina | 24 | f
請具體說明您需要的其他領域。現在,你想要一個人出發的最早日期。清晰的業務規則有助於我們給出明確的答案! –