Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / группировка по возрасту по интервалам / 13 сообщений из 13, страница 1 из 1
17.12.2003, 15:31
    #32355553
Ilia
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка по возрасту по интервалам
Есть поле, где хранится возраст человека в годах.
Как подсчитать количество людей в определеном интервале не делая на каждый интервал отдельный запрос.
...
Рейтинг: 0 / 0
17.12.2003, 15:41
    #32355573
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка по возрасту по интервалам
делаешь функцию, которая в зависимости от интервала выдает различные значения. группируешь по этому значению

второй вариант, хорош для ADP
делаешь таблицу с возраст мин, возраст макс название интервала

в запрос вставляешь подчиненный запрос в котором вычислается интервал в который попадает возраст, также добавить в группировку
...
Рейтинг: 0 / 0
17.12.2003, 22:24
    #32356104
(c)VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка по возрасту по интервалам
Ну ,если захотеть ,то можно без функций и дополнительных таблиц :)
Код: plaintext
1.
2.
3.
SELECT Interval*int(Age/Interval) &  "-"  & Interval*(int(Age/Interval)+ 1 )- 1  AS [Interval],
count(*) AS qty
FROM MyTable 
GROUP BY int(Age/Interval);
...
Рейтинг: 0 / 0
18.12.2003, 09:43
    #32356267
Ilia
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка по возрасту по интервалам
А про функцию можно поподробнее.
...
Рейтинг: 0 / 0
18.12.2003, 11:27
    #32356426
фыыф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка по возрасту по интервалам
>>Есть поле, где хранится возраст человека в годах

и каждый год мы с приятелями 31-го декабря его апдейтим :)
...
Рейтинг: 0 / 0
18.12.2003, 12:18
    #32356515
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка по возрасту по интервалам
можно поподробнее
в модуле пишем:

Public Function MyAge(sngAge)

Select Case sngAge
Case Is < 0
MyAge = "Возраст отрицательный"
Case 0 To 5
MyAge = "01. 0 - 5 лет"
Case 5 To 10
MyAge = "02. 5 -10 лет"

'и так далее

Case 45 To 60
MyAge = "11. 45 - 60 лет"

Case Is > 60
MyAge = "12. старше 60 лет"

Case Else
MyAge = "Неизвестный период" 'будет выдавать ошибку если есть пропуски в классификации
End Select
End Function

забиваешь все периоды как тебе нужны

тестируешь в debug (ctrl+G)
набирая
? MyAge(44)
и жмя энтер видеть результаты

затем воткнуть что-то типа
Группа-Возраста: MyAge(Поле_С_Возрастом)
в конструктор запросов и радоваться
группировке по этому полю
...
Рейтинг: 0 / 0
18.12.2003, 12:21
    #32356516
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка по возрасту по интервалам
>и каждый год мы с приятелями 31-го декабря его апдейтим :)

апдейтить нада в день варенья тогда уж
...
Рейтинг: 0 / 0
18.12.2003, 12:31
    #32356532
CtrlAlt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка по возрасту по интервалам
А что это никто про стандартную функцию Partition не вспомнил? Как раз для этого дела
...
Рейтинг: 0 / 0
18.12.2003, 13:14
    #32356619
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка по возрасту по интервалам
Мдя..
редко использовали значить..
Плюс своя функция гибче :)
например, в статистике человеки по возрастам неравномерно делятся вроде бы
а partition даст только равномерную разбивку
плюс ее еще и обработать/отформатировать нада
к каждому определенному случаю
не везде ж " 500: 549" подойдет...
...
Рейтинг: 0 / 0
18.12.2003, 13:35
    #32356669
фыыф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка по возрасту по интервалам
>>апдейтить нада в день варенья тогда уж


само-собой, но уж шютка тогда тяжеловата(о) виходит. :)


Энто я просто вспомнил, шо тут люди что-то такое обсуждали. Но с хранением не возраста, а дня варенья, и пользованием DateAdd()/DateDiff()/DatePart()
...
Рейтинг: 0 / 0
18.12.2003, 15:09
    #32356883
Ilia
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка по возрасту по интервалам
Я неверно задал вопрос.
Есть поле день варенья.
Есть фунция, где счиется возраст каждого человека (их много ~ 20000)
Есть запрос с этой функцией, где выдается возраст.
Как получить запрос или отчет, где выдавалось бы:
Возраст Кол-во чел.
1-10 5

11-20 5 т.д.
...
Рейтинг: 0 / 0
18.12.2003, 21:16
    #32357356
(c)VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка по возрасту по интервалам
...
Рейтинг: 0 / 0
19.12.2003, 14:38
    #32358124
Ilia
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
группировка по возрасту по интервалам
Все разобрался. Всем спасибо и особенно Alexus12 , т.к. использовал его решение.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / группировка по возрасту по интервалам / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]