Имя: Пароль:
1C
1С v8
Есть ли такая функция суммирования поля при группировке в запросе?
, , ,
0 толькодлявопросов
 
12.12.17
23:04
Можно ли как-то суммировать поле при группировке таким образом, чтобы  в суммированное поле ставилось то значение, которое больше всего раз встречается, например:
Стул - 5
Стул - 5
Стул - 1
Стул - 5
Стул - 5

при группировке  будет
Стул - 5,

то есть, чтобы взялось самое часто встречаемое.
Хотя я понимаю, что скорее всего такой возможности нет...
1 mikecool
 
12.12.17
23:06
максимум()
2 mikecool
 
12.12.17
23:06
а, тебе статистика
3 толькодлявопросов
 
12.12.17
23:08
(1) ну максимум же возьмет самое большее вроде
4 толькодлявопросов
 
12.12.17
23:09
(3) а мне типа самое "популярное")
5 толькодлявопросов
 
12.12.17
23:16
(4) или что-то типа ПЕРВОЕ, если такое есть
6 Сияющий в темноте
 
12.12.17
23:19
Сгруппировать по значению, поставив рядом колонку с Сумма(1), отсортировать по убыванию и выбрать первое.
7 vde69
 
модератор
12.12.17
23:19
это делается через вложеный запрос
8 толькодлявопросов
 
12.12.17
23:20
(7) как
9 толькодлявопросов
 
12.12.17
23:22
(6) оу, а это идея, может не получиться, но все равно интересно придумано
10 толькодлявопросов
 
12.12.17
23:23
(6) только как потом первое выбрать в самом запросе?
11 Armando
 
12.12.17
23:24
ВЫБРАТЬ
    "Стул" КАК Поле1,
    5 КАК Поле2
ПОМЕСТИТЬ Источник

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Стул",
    5

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Стул",
    1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Стул",
    5

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Стул",
    5
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
    Источник.Поле1,
    Источник.Поле2,
    КОЛИЧЕСТВО(*) КАК Количество
ИЗ
    Источник КАК Источник

СГРУППИРОВАТЬ ПО
    Источник.Поле1,
    Источник.Поле2

УПОРЯДОЧИТЬ ПО
    Количество УБЫВ
12 Chameleon1980
 
12.12.17
23:24
например - временная таблица с функцией Количество различные далее по убыванию этого поля Выбрать первые 1
13 Armando
 
12.12.17
23:33
ВЫБРАТЬ
    "Стул" КАК Поле1,
    5 КАК Поле2
ПОМЕСТИТЬ Источник

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Стул",
    5

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Стул",
    1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Стул",
    5

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Стул",
    5
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Источник.Поле1,
    Источник.Поле2,
    КОЛИЧЕСТВО(*) КАК Количество
ПОМЕСТИТЬ КоличествоУникальныхЗаписей
ИЗ
    Источник КАК Источник

СГРУППИРОВАТЬ ПО
    Источник.Поле1,
    Источник.Поле2
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    КоличествоУникальныхЗаписей.Поле1,
    МАКСИМУМ(КоличествоУникальныхЗаписей.Количество) КАК Количество
ПОМЕСТИТЬ ГруппировкаСМаксимальнымКоличеством
ИЗ
    КоличествоУникальныхЗаписей КАК КоличествоУникальныхЗаписей

СГРУППИРОВАТЬ ПО
    КоличествоУникальныхЗаписей.Поле1
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    КоличествоУникальныхЗаписей.Поле1,
    КоличествоУникальныхЗаписей.Поле2
ИЗ
    КоличествоУникальныхЗаписей КАК КоличествоУникальныхЗаписей
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ГруппировкаСМаксимальнымКоличеством КАК ГруппировкаСМаксимальнымКоличеством
        ПО КоличествоУникальныхЗаписей.Поле1 = ГруппировкаСМаксимальнымКоличеством.Поле1
            И КоличествоУникальныхЗаписей.Количество = ГруппировкаСМаксимальнымКоличеством.Количество
14 Armando
 
12.12.17
23:34
(13) Универсально, если в Поле1 будут разные значения
15 толькодлявопросов
 
12.12.17
23:48
(13) Спасибо