использование MIN на элементе date с Group BY не работает, возвращает разные даты - PullRequest
0 голосов
/ 30 июня 2009

Может кто-нибудь помочь с агрегатной функцией .. МИН.

У меня есть автомобильный столик, по которому я хочу вернуть минимальную продажную цену и минимальный год на табличке, в которой есть идентичные автомобили, но разные годы и цена ...

В основном, если я удалил Регистрация (содержит ГОД) из группы и выбрал запрос, но если я оставлю его, то я получу 3 автомобиля, которые точно такой же модели, выпускаются и т. Д., Но с разными годами.

Но я использую MIN, поэтому он должен вернуть 1 автомобиль с 2006 годом (минимальный год между 3 автомобилями)

МИН (SalePrice) работает отлично .. это регистрация, которая не нарушается ..

Есть идеи?

ВЫБРАТЬ MIN (datepart (год, [Регистрация])) AS YearRegistered, MIN (SalePrice), модель, марка ОТ [VehicleSales] ГРУППА ПО datepart (год, [регистрация]), модель, марка

Ответы [ 4 ]

1 голос
/ 30 июня 2009

Если я правильно понял, что вы ищете, вы должны запросить:

SELECT Model, Make, MIN(datepart(year,[Registration])) AS YearRegistered, MIN(SalePrice)
FROM [VehicleSales]
GROUP BY Model, Make

Надеюсь, это поможет.

1 голос
/ 30 июня 2009

Ответ Turro вернет самый низкий год регистрации и самую низкую цену для (Model, Make), но это не означает, что самая низкая цена будет для автомобиля с самым низким годом. Это то, что вам нужно?

Или вам нужен один из них:

  1. самая низкая цена между автомобилями с самым низким годом

  2. самый низкий год между автомобилями с самой низкой ценой

- отредактировано ---

Вы правы насчет запроса, но я хочу найти марку / модель автомобиля, которая станет дешевле в следующем году;)

Вот почему я сделал комментарий. Представьте себе следующую ситуацию

Porshe 911 2004 2000
Porshe 911 2004 3000
Porshe 911 2005 1000
Porshe 911 2005 5000

Вы получите результат, который на самом деле не скажет вам, будет ли этот автомобиль дешевле в зависимости от года.

Porshe 911 2004 1000

Я не знаю, как вы узнаете, станет ли автомобиль дешевле в следующем году, по крайней мере, по сравнению с предыдущим годом.

P.S. Я хотел бы купить один из автомобилей выше по указанной цене: D

0 голосов
/ 01 июля 2009

Вы правильно ответили на вопрос, но я хочу найти марку / модель автомобиля, которая станет дешевле в следующем году;)

Вы должны найти самую дешевую (или среднюю) марку / модель в год и сравнить с самой дешевой (или средней) предыдущим годом (для той же марки / модели).

Тогда вы можете увидеть, какой из них станет дешевле в следующем году (я полагаю, большинство из них)

0 голосов
/ 30 июня 2009

Вы получаете то, что просите: автомобили делятся на разные группы, когда их модель, марка или год отличаются, а (минимальный, т.е. только) год и минимальная цена для каждой из этих групп вернулся.

Почему вы используете GROUP BY?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...