|
|
|
Подсчет среднего по месяцам для перекрывающихся диапазонов
|
|||
|---|---|---|---|
|
#18+
Может тема и не правильно сформулирована, долго думал как это коротко назвать, на самом деле прошу помощи в составлении следующего запроса: Есть таблица студенты - классы: SdutentID ClassID dtFrom - дата начала обучения dtEnd - дата конца обучения Даты dtFrom и dtEnd - совершенно произвольные, т.е. обучение не потоковое Нужно определить среднее кол-во студентов в каждом классе, на каждый месяц заданного года. Т.е. в итоге это должно выглядеть так: Янв Фев Мар ... класс1 23 45 34 класс2 12 23 37 класс3 12 19 15 ................................. Понятно что в итоге это будет перекрестный запрос, или сводная таблица, но я не могу пока придумать как изначально сгруппировать данные для этого. В принципе, не обязательно считать кол-во студентов в каждый день месяца, а сделать как бы 2 замера: 7 и 21 числа каждого месяца и усреднить. С благодарностью, Влад ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2004, 14:59:24 |
|
||
|
Подсчет среднего по месяцам для перекрывающихся диапазонов
|
|||
|---|---|---|---|
|
#18+
Да, забыл сказать что студент запросто может быть в нескольких класса сразу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2004, 15:01:46 |
|
||
|
Подсчет среднего по месяцам для перекрывающихся диапазонов
|
|||
|---|---|---|---|
|
#18+
Сообразил такой подход: -делаем вспомогательную табличку с номерами месяцев -делаем декартово произведение таблицы месяцев и таблицы СтудентКласс -в каждой строке такого произведения выводим 1 если 7 число данного месяца попадает в [dtFrom;dtEnd] и 0 если нет, аналогично второе выражение для 21 числа. - ... Это в лоб, может есть более красивые решения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2004, 15:57:48 |
|
||
|
|

start [/forum/topic.php?fid=45&tid=1672405]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 301ms |

| 0 / 0 |
