|
Расчет перцентилей по числовому массиву |
☑ |
0
Lepochkin
05.12.16
✎
15:06
|
Всем доброго времени суток. Столкнулся с задачкой описанной в теме. Собственно в стандартных инструментах sql или Excel этот механизм реализован. В 1с никак не могу найти.
|
|
1
PLUT
гуру
05.12.16
✎
15:11
|
(0) рассчитай перцентиль в Excele. 1C умеет Excel юзать
|
|
2
b_ru
05.12.16
✎
15:17
|
Открой википедию, почитай, реализуй. Делов то на два часа.
|
|
3
Lepochkin
05.12.16
✎
15:25
|
А никто случайно в скульный запрос не пихал таблицу значений 1совскую?
|
|
4
bolobol
05.12.16
✎
15:33
|
(3) Регулярно так делаем.
|
|
5
Lepochkin
05.12.16
✎
15:34
|
(4) Не поделитесь примерчиком?
|
|
6
bolobol
05.12.16
✎
15:40
|
(5) А пожалуйста:
Запрос.УстановитьПараметр("ТЗ", ТЗ);
Всё, ТЗ в запросе! Ежели база скульная - ТЗ окажется в скульном запросе.
|
|
7
Lepochkin
05.12.16
✎
15:42
|
Это то понятно. Мне нужно в родной sql запрос ее пихнуть. В нем есть готовая функция расчета перцентиля...
|
|
8
Lepochkin
05.12.16
✎
17:33
|
Решил вопрос вот так.
СсылкаНаОбъект = Справочники.ВнешниеОбработки.НайтиПоНаименованию("ADODB");
ИмяФайла = ПолучитьИмяВременногоФайла();
ДвоичныеДанные = СсылкаНаОбъект.ХранилищеВнешнейОбработки.Получить();
ДвоичныеДанные.Записать(ИмяФайла);
ADODB = ВнешниеОбработки.Создать(ИмяФайла);
ADODB.База = "PRICE_MANAGER_V2";
ADODB.Сервер = "omega";
ADODB.Пользователь = "sa";
ADODB.Пароль = "Zwergnase2014";
ADODB.MSSQL_Подключение();
ТекстЗапроса = "select
| [tt].[kod],
| PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY [tt].[Price]) OVER (PARTITION BY [tt].[Kod]) AS MedianCont
|from
|(";
Для Каждого Стр Из ТаблицаДанных Цикл
Если Стр.НомерСтроки > 1 Тогда
ТекстЗапроса = ТекстЗапроса + "
|union
|"
КонецЕсли;
ТекстЗапроса = ТекстЗапроса + "select
|"+формат(Стр.Код,"ЧГ=0")+" as [Kod],
|"+?(Стр.Цена=0,"0",формат(Стр.Цена,"ЧГ=0"))+" as [Price]
|";
КонецЦикла;
ТекстЗапроса = ТекстЗапроса + ") [tt]";
тзПерцентили = ADODB.MSSQL_ВыполнитьЗапросИВернутьТаблицуЗначений(ТекстЗапроса);
тзПерцентили.ВыбратьСтроку();
|
|
9
b_ru
05.12.16
✎
17:37
|
|
|
10
Lepochkin
05.12.16
✎
17:38
|
покажи другое решение
|
|