Подвыбор в Big Query Standard SQL - PullRequest
       0

Подвыбор в Big Query Standard SQL

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

Я не могу решить эту проблему SQL. У меня есть запросы sub select, и я хотел бы добавить предложение where:

SELECT 

  -- Custom Dimension Canonical URL (Hit)
 (
    SELECT
      value
    FROM
      UNNEST(hits.customDimensions)
    WHERE
      index = 1
    GROUP BY
      1
  ) AS canonicalURL,

  -- Custom Dimension Publishing Date (Hit)
  (
    SELECT
      value
    FROM
      UNNEST(hits.customDimensions)
    WHERE
      index = 8
    GROUP BY
      1
  ) AS articlePublishingDate

FROM
  ${constants.ga_tables} AS session,
  UNNEST(hits) AS hits
WHERE
  _table_suffix BETWEEN '20191103'
  AND FORMAT_DATE(
    '%Y%m%d',
    DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
  )
  AND totals.visits = 1

GROUP BY
  1,
  2

Во внешнем предложении where, которое я хотел бы отфильтровать по articlePublishingDate, не указано значение, равное нулю:

FROM
  ${constants.ga_tables} AS session,
  UNNEST(hits) AS hits
WHERE
  _table_suffix BETWEEN '20191103'
  AND FORMAT_DATE(
    '%Y%m%d',
    DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
  )
  AND totals.visits = 1 AND articlePublishingDate is not null

Однако я получаю сообщение об ошибке «Нераспознанное имя». У вас есть идея, как это исправить?

1 Ответ

1 голос
/ 04 ноября 2019

вместо AND articlePublishingDate is not null вы можете попробовать любой из следующих вариантов

AND EXISTS (SELECT 1 FROM UNNEST(arr) WHERE index = 8)   

или

AND 8 IN (SELECT index FROM UNNEST(arr))    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...