检查每个日期是否存在值。

时间:2018-11-06 18:12:37

标签: sql google-bigquery

我在以下方面遇到麻烦:

我正在尝试使用Google Bigquery将引荐来源网址检索到我的网站。我正在查看从2018年1月1日到2018年10月31日每个域每月提供的访问量。但是,我只希望能够看到引荐来源实际每月发送流量(因此,如果某个域在1月发送了流量但不是2月,我想完全忽略它们)。

有没有简单的方法可以做到这一点?

查询当前如下所示:

const ctx = document.getElementById('myChart').getContext('2d');

new Chart(ctx, {
  type: 'doughnut',
  data: {
    labels: ['Company 1', 'Company 2', 'Company 3', 'Company 4'],
    datasets: [
      {
        label: 'My First Dataset',
        data: [6900, 3450, 2300, 1800],
        borderWidth: 0,
        backgroundColor: [
          '#7976FF',
          '#FFB546',
          '#FE6779',
          '#F4F5F7'
        ]
      }
    ]
  },
  options: {
    legend: false,
  }
});

我一直在研究使用UNNEST和数组公式,但是我并不完全了解如何使用它们。

预先感谢

1 个答案:

答案 0 :(得分:2)

下面是用于BigQuery标准SQL(快速环绕原始查询)

#standardSQL
SELECT DATE, referrer, VISITS
FROM (
  SELECT DATE, referrer, VISITS, COUNT(1) OVER(PARTITION BY referrer) total_months
  FROM (
    SELECT
      FORMAT_DATE("%Y-%m", DATE(TIMESTAMP(date_time))) AS DATE,
      NET.REG_DOMAIN(referrer) AS referrer,
      COUNT(1) AS VISITS
    FROM `MY.TABLE`
    WHERE DATE(TIMESTAMP(date_time)) BETWEEN '2018-01-01' AND '2018-10-31'  
    -- AND [my appropriate segmentation]
    GROUP BY DATE, referrer
  )
)
WHERE total_months = 10
ORDER BY referrer, DATE