Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Суммирование по группам / 14 сообщений из 14, страница 1 из 1
01.07.2003, 10:20
    #32195733
Даниил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по группам
Есть табличка (~30 тыс. записей) в которой в числовое значение от 0 до 100. Необходимо найти количество записей, где это значение =0; =1; и т.д. до =100.
Это можно как-то автоматизировать, а не писать 100 раз запрос, меняя параметр у WHERE?
...
Рейтинг: 0 / 0
01.07.2003, 10:27
    #32195748
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по группам
Код: plaintext
1.
2.
SELECT MyTable.Number, Count(*) AS [Count-Rows]
FROM MyTable
GROUP BY MyTable.Number


Где Number - числовое поле (повторяющиеся значения от 0 до 100).
...
Рейтинг: 0 / 0
01.07.2003, 10:34
    #32195759
Даниил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по группам
Сенькс за оперативность
...
Рейтинг: 0 / 0
01.07.2003, 10:44
    #32195781
Даниил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по группам
Только я чего-то сначала не того спросил... Звиняюсь.
Надо суммировать по группам: 0<поле<=10; 10<поле<=20 и т.д.
А это как сделать?
...
Рейтинг: 0 / 0
01.07.2003, 11:08
    #32195810
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по группам
SELECT MyTable.Number, Sum(*) AS [Count-Rows]
FROM MyTable
GROUP BY MyTable.Number \ 10
...
Рейтинг: 0 / 0
01.07.2003, 11:09
    #32195813
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по группам
То есть:

SELECT MyTable.Number \ 10, Sum(*) AS [Count-Rows]
FROM MyTable
GROUP BY MyTable.Number \ 10
...
Рейтинг: 0 / 0
01.07.2003, 11:10
    #32195814
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по группам
Нужно сделать табличку соответствия интервалов наборам записей в поле с номером (Number) и вместо значения в Number в запросе указывать интревал, к которому принадлежит значение.
...
Рейтинг: 0 / 0
01.07.2003, 11:12
    #32195817
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по группам
Временная таблица - это, имхо, громоздко.
...
Рейтинг: 0 / 0
01.07.2003, 11:14
    #32195819
Даниил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по группам
Большое спасибо Владимиру Санычу. Чего то я туплю тут на жаре. Извиняюсь за примитив. А если границы такие: от 0 до 3; от 4 до 20; от 21 до 100. Тогда как?
...
Рейтинг: 0 / 0
01.07.2003, 11:21
    #32195832
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по группам
Тогда можно написать функцию, которая будет по числу возвращать код группы. И группировать по ней.
...
Рейтинг: 0 / 0
01.07.2003, 11:21
    #32195833
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по группам
Да, с временной табличкой громоздко, зато для любых интервалов подходит.

Только я не понял один момент, если в табличке ещё есть текстовые поля помимо числового, то Sum(*) работать не будет.
Нужно писать Count(*), а так - забывать стал уже некоторые методы :)
...
Рейтинг: 0 / 0
01.07.2003, 11:23
    #32195836
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по группам
Ой. Моя ошибка. Sum(MyTable.Number), конечно.
...
Рейтинг: 0 / 0
01.07.2003, 11:25
    #32195841
Даниил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по группам
Ага - без Count'a не обойтись; мне не сумма нужна, а количество.

2 Владимир Саныч:
А если особо не затруднит, подскажите, как в Access'e функции создавать? Я в этом деле не очень рулю. А может проще в отдельное поле прописать код группы и не мучиться?
...
Рейтинг: 0 / 0
01.07.2003, 11:35
    #32195855
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по группам
> как в Access'e функции создавать?

Заходим в модуль (можно создать новый) и пишем:

Function ZZZ(n As Integer) As Integer
ZZZ = n \ 10
End Function

> А может проще в отдельное поле прописать код группы и не мучиться?

Можно и так. :^)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Суммирование по группам / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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