Это не оригинальная таблица, я создаю подобную ситуацию, чтобы лучше объяснить проблему. Предположим, у меня есть таблица под названием [student], с 4 столбцами: [имя], [пол], [возраст], [страна].Выделить все столбцы, группы по одному столбцу с другими требованиями
Как сделать «SELECT *» запроса, который возвращает строки, которые удовлетворяют эти требования:
- студента должен быть мужчиной
- только один студент из каждой страны
- , если есть больше чем один студенты из одной страны, выберите самую старую
Я попытался использовать GROUP BY на [стране], но все равно получаю ошибку «Столбец ...» недействителен в списке выбора, потому что он не содержится ни в одном из агрегатная функция или предложения GROUP BY»
любой столбец не в совокупности, должен появиться в предложении GROUP BY. Покажите нам свой существующий код – Squirrel
'SELECT * FROM (SELECT *, ROW_NUMBER() OVER (PARTITION BY ORDER BY BY DES DES) RN FROM myTable WHERE gender = 'male') T WHERE RN = 1;'? – ZLK
@ZLK Это работает! Я отвечу на ваш ответ, если вы ответите. Благодаря вам, я только что узнал о ROW_NUMBER и PARTITION сегодня. – ogrimmar