Временной ряд Cube.js, исключая выходные - PullRequest
1 голос
/ 06 ноября 2019

Я использую коннектор mongo db BI и пытаюсь визуализировать графики серий дат с помощью cube.js. Есть ли способ применить измерение времени с диапазоном дат и с учетом только рабочих дней? Ниже приведены мой образец схемы и коллекции кубов

cube(`Entries`, {
    sql: `SELECT * FROM db.entries`,    
    measures: {
      count: {
        type: `count`
      }
    },

    dimensions: {
      result: {
        sql: `result`,
        type: `string`
      },

      date: {
        sql: `date`,
        type: `time`
      },
    },
  });

Запрос:

{
     "measures": [
       "Entries.count"
      ],
      "timeDimensions": [
         {
            "dimension": "Entries.date",
            "granularity": "day"
         }
      ]
}

1 Ответ

0 голосов
/ 07 ноября 2019

Вы можете сделать это, введя weekdays сегмент:

cube(`Entries`, {
  sql: `SELECT * FROM db.entries`,    
  measures: {
    count: {
      type: `count`
    }
  },

  dimensions: {
    result: {
      sql: `result`,
      type: `string`
    },

    date: {
      sql: `date`,
      type: `time`
    },
  },

  segments: {
    weekdays: {
      sql: `DAYOFWEEK(${date}) <> 1 AND DAYOFWEEK(${date}) <> 7`
    }
  }
});

И использовать его в запросе, например:

{
   "measures": [
     "Entries.count"
   ],
   "timeDimensions": [
       {
          "dimension": "Entries.date",
          "granularity": "day"
       }
   ],
   "segments": ["Entries.weekdays"]
}

Чтобы скрыть нулевые значения выходных, передайте fillMissingDates: false при подготовкеданные:

resultSet.chartPivot({ fillMissingDates: false })

Подробнее о сегментах здесь: https://cube.dev/docs/segments

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...