Агрегация двух таблиц в третью

Автор kornilov, 12 июля 2016, 03:54:59

« назад - далее »

kornilov

Коллеги, я голову сломал, форум прошерстил, не могу понять, как сделать простую вещь:
abon:
Load *  Inline
[

Абонент, Подключился, Отключился

1, 01.01.2010, 01.02.2010
2, 01.01.2010, 01.03.2010
3, 01.01.2010, 01.03.2010
4, 01.02.2010, 01.03.2010
5, 01.02.2010, 01.04.2010
6, 01.02.2010, 01.05.2010
7, 01.02.2010,
8, 01.03.2010, 01.04.2010
9, 01.03.2010, 01.04.2010
10, 01.03.2010, 01.05.2010
11, 01.03.2010, 01.05.2010
12, 01.03.2010,
13, 01.04.2010,
14, 01.05.2010,
];

То есть у нас абоненты подключаются и отключаются, некоторые еще не отключились. Я могу вывести таблицу подключений и таблицу отключений, но как сделать таблицу общего притока/оттока по датам? То есть мне нужен приток-отток на дату.
Так как даты в разных колонках, общую агрегацию не сделать и даже, если использовать прегенерированный календарь, то все равно надо связать его с одной из двух колонок. Прошу помощи!

admin

Привет.
Посмотрите в хелпе информацию по intervalmatch().

kornilov

Admin, маленько не на тот вопрос ответили, классификация дат в периоде не нужна - автокалендарь YearMonth все классно делает. Но все равно спасибо!
Если кому интересно, то оставлю найденное решение здесь (оказалось все достаточно просто):
Генерируем в ручную календарик (не реальных данных - это делается циклом):
calendar:
Load *  Inline
[
N, Date
1, 01.01.2010
2, 01.02.2010
3, 01.03.2010
4, 01.04.2010
5, 01.05.2010
];

Делается диаграмма с измерением Date и мерами
Приток: SUM({1}if([Подключился]=Date,1,0))
Отток: SUM({$}if([Отключился]=Date,1,0))
Чистый приток: SUM({$}if([Подключился]=Date,1,0))-SUM({$}if([Отключился]=Date,1,0))

Прочитал документацию, ценной находкой является то, что если условие ставится внутри функции агрегации, то выполняется для каждой строки выбранного множества. На реальных данных должно работать достаточно медленно, но не могу подобрать правильный синтаксис, чтобы анализом множеств без if и суммирования обойтись. Видится как-то так для подключений:
count({$<[Подключился]=Date>}[Абонент])

Но не работает  :D

Яндекс.Метрика