|
Среднее в запросе
| ☑ |
0
CyberDream
19.08.13
✎
17:55
|
Вопрос больше касается алгоритма. Кто как делает. Например. Есть таблица:
Дата Цена
01.01.2013 10
25.01.2013 20
Нужно расчитать среднюю цену за период с 01.01.2013 по 31.01.2013.
Очевидно, что среднее арифметическое по полю цена есть 15. Но на самом деле цена в 10 была на протяжении 24 дней, а цена в 20 на протяжении 7 дней. Отсюда вывод, что средняя цена составляет 12.25
Интересно решить подобную задачу запросом. Подскажите, кто как делал.
|
|
1
Fragster
модератор
19.08.13
✎
17:57
|
умножить на количество дней действия / количество всех дней
|
|
2
CyberDream
19.08.13
✎
17:58
|
(1) это очевидно. Вопрос по запросу. Интересны варианты.
|
|
3
Bober
19.08.13
✎
18:05
|
(2) запросом получить таблицу, если отчет идет за период месяц.
01.01.2013, 24.01.2013, 10
25.01.2013, 31.01.2013, 20
а дальше дело техники
|
|
4
hhhh
19.08.13
✎
18:05
|
(2) ну вариант один. Тот какой в (1). И он в общем-то не интересен. А у вас какие варианты?
|
|
5
CyberDream
19.08.13
✎
18:08
|
(4) копаю в сторону (3) но что-то пока особых успехов не достигнуто.
Для получения подобной таблицы - первая мысль соединять выборку саму с собой по уловию периода.....
|
|
6
Serginio1
19.08.13
✎
18:08
|
|
|
7
CyberDream
19.08.13
✎
18:10
|
(6) наверное то, что нужно. Ща запилим.
|
|
8
Serginio1
19.08.13
✎
18:15
|
(7) Только нужно условие на джойн меньше, а не меньше или равно
|
|
9
Serginio1
19.08.13
✎
18:40
|
Тьфу относительно твоей задачи нужно искать наибольшую следующую дату и если её нет то текущуюДату.
То есть нужно искать мин дату при условии, что она больше
Тоесть
Select т.Дата,т.Цена,Мин(Т2.Дата) Как следующаяДата From Таблица как т
Левое соединенние Таблица как т2 ПО Т.Дата <Т2.Дата
Сгруппировать По т.Дата,т.Цена
|
|
10
Тролль главный
19.08.13
✎
18:45
|
у меня вопрос: а что это "среднее" реально отражает то?
|
|
11
Михаил Козлов
19.08.13
✎
19:44
|
(10)+ По 1-ой цене пришло 1000, а по 2-ой - 1. Какая средняя цена?
|
|
12
Bober
20.08.13
✎
16:33
|
(0) может еще актуально
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший