0
這不是原始表,我創建了類似的情況,以便我可以更好地解釋問題。 假設我有一張名爲[學生]的表,有4列:[姓名],[性別],[年齡],[國家]。選擇所有列,按其他要求組合一列
如何做一個「SELECT *」查詢,返回符合這一要求的行:
- 學生必須是男性
- 每個國家
- 只有一個學生,如果有一個以上來自一個國家的學生,選擇最老的一個
我試着在[country]上使用GROUP BY,但不斷收到錯誤「Column'...'在選擇列表中無效,因爲它不包含在聚合函數或GROUP BY子句」
任何非合計的列必須出現在GROUP BY子句中。向我們顯示您現有的代碼 – Squirrel
'SELECT * FROM(SELECT *,ROW_NUMBER()OVER(PARTITION BY ORDER BY Age DESC)RN FROM myTable WHERE gender ='male')T WHERE RN = 1;'? – ZLK
@ZLK它的工作原理!如果您提交答案,我會將您的答案標記爲答案。感謝你,我今天剛剛瞭解了ROW_NUMBER和PARTITION。 – ogrimmar