JQL-преобразования Mixpanel

Я написал JQL, чтобы получить количество событий, произошедших для заданной даты начала и даты окончания.

function main() {
   return Events({
      from_date: params.start_date,
      to_date: params.end_date,
      event_selectors: _.map(params.events, event => ({event: event}))
   }).groupBy(["name","properties.ID"], mixpanel.reducer.count())
  .map(e => { return {"event" : e.key[0], "Id" : e.key[1], "value" : e.value} });
}

Я получаю такой результат

Id    Event   Value
1     Event1    2
2     Event1    3
1     Event2    5
2     Event2    7

Я хочу, чтобы результат отображался так

Id     Event1   Event2
1         2       5
2         3       7

Какие преобразования мне нужно применить для этого?


person Tejas N    schedule 12.12.2017    source источник


Ответы (1)


Попробуйте использовать этот пример в console.

function main() {
  return Events({
    from_date: '2016-01-01',
    to_date:   '2016-01-07'
  })
  .groupBy(['name', 'properties.$email'], mixpanel.reducer.count())
  //.filter(x => x.key[1] == '[email protected]') // for testing
  .groupBy(['key.0'], mixpanel.reducer.any())
  .reduce((a, b) => {
    return b.map((obj) => {
      return {
        email: obj.value.key[1],
        name: obj.value.key[0],
        value: obj.value.value
      };
    });
  }).flatten();
}

Возвращает объект с полями - адрес электронной почты, имя, значение.

[email protected]    View Blog           1
[email protected]    View Landing Page   4
[email protected]    login               3
[email protected]    pageview            2
person AfsmNGhr    schedule 20.03.2018