0
andrey02
30.07.15
✎
11:25
|
Есть, например, такой набор данных:
Клиент | Товар | Количество
Вася | Стол | 5
Вася | Диван | 10
Вася | Кровать | 1
Петя | Стол | 5
Петя | Стул | 3
Петя | Диван | 3
Нужно получить отчет по наиболее частым товарам в разрезе покупателей (либо другого поля отчета), т.е., например, такой:
Вася | Диван
Петя | Стол
Добавил вычисляемое поле «НаиболееЧастыйТовар», в ресурсах для него пишу:
ВычислитьВыражение("
Массив(
Упорядочить(
ВычислитьВыражениеСГруппировкойТаблицаЗначений(""Товар, Сумма(Количество) КАК Количество"", ""Товар"")
, ""Количество Убыв"")
)
")
Смысл выражения: получаем таблицу значений с итого количество по товарам, сортируем ее по убыванию количества, получаем массив товаров, первый элемент которого и есть нужный – с максимальным количеством в текущей группировке.
А вот как этот первый элемент вытащить из массива – не могу найти.
Варианты вроде вычисления самого частого товара в запросе не подходят, т.к. реальный отчет содержит больше полей, и пользователи могут произвольно настраивать структуру отчета.
Вариант добавить группировку по товару, в ней сортировку по убыванию количества и ограничение количества записей 1 - тоже не подходит, т.к. нужен именно ресурс.
|
|
4
bootini
30.07.15
✎
17:57
|
(3) А тут?
ВычислитьВыражениеСГруппировкойТаблицаЗначений(""Товар, МАКСИМУМ(Количество) КАК Количество"", ""Товар"")
, ""Количество Убыв"")
|
|
5
andrey02
03.08.15
✎
14:50
|
(4) Если тут сделать "максимум", то получится по сути такая же таблица значений. Для набора данных из примера, получится точно такая же таблица значений. Вопрос, как из этой таблицы получить значение из первой строки остается.
|
|