#sql #ms-access #max
#sql #ms-access #макс
Вопрос:
Я работаю над назначением, и у меня есть таблица с несколькими столбцами. Два, которые меня интересуют, — это Type
и Easting
столбец.
Я пытаюсь использовать запрос для возврата максимального значения из Easting
столбца, а также показать мне, что это значение содержится в Type
столбце.
Я использую Microsoft Access для назначения.
Вот что у меня есть на данный момент, но оно возвращает все значения, а не максимальное
SELECT Type, Location,MAX(Easting)
FROM CrimeData
GROUP BY Easting, Location, Type
Любая помощь была бы отличной.
Комментарии:
1. удалить
Easting
из списка групп по
Ответ №1:
Вам нужно будет получить максимальное Easting
значение (используя подзапрос), а затем выбрать все записи, которые содержат такое значение, например:
select c.type, c.location, c.easting
from crimedata c
where c.easting = (select max(t.easting) from crimedata t)
Решения, использующие group by
предложение, будут предоставлять только максимальное Easting
значение для записей в пределах каждой комбинации значений, хранящихся в полях в group by
предложении.
Комментарии:
1. это идеально, очень ценится
Ответ №2:
Необходимо сгруппировать по всем выходным столбцам, кроме того, в котором указан aggregate (MAX).
SELECT Type, Location, MAX(Easting)
FROM CrimeData
GROUP BY Type, Location
При группировании вы можете отфильтровать необработанные данные перед группировкой с помощью предложения WHERE и сгруппированные данные после группировки с помощью предложения having. например
SELECT Type, Location, MAX(Easting)
FROM CrimeData
WHERE Type > 1
GROUP BY Type, Location
HAVING MAX(Easting) < 10
Комментарии:
1. о, это просто, лол, ну, это сузило список до 11, но все еще включает несколько, которые ниже максимального значения
Ответ №3:
Попробуйте это:
SELECT Type, Location, MAX(Easting)
FROM CrimeData
GROUP BY Location, Type
HAVING Easting = MAX(Easting)
или проще:
SELECT Type, Location, Easting
FROM CrimeData
where Easting = (select max(Easting) from CrimeData)
Столбец, который вы используете в функции (в вашем случае MAX), не должен быть частью инструкции group by .
Надеюсь, это устранит проблему, иначе я смогу объяснить больше 😉
Комментарии:
1. да, я только что пробовал это, но, возможно, я недостаточно объяснил себя в первоначальном сообщении, это дает мне максимальное значение для каждого местоположения, но я хочу включить только период МАКСИМАЛЬНОГО числа и показать местоположение и тип для этого значения, если это имеет смысл?