Как суммировать список COUNT в SQL - PullRequest
1 голос
/ 06 марта 2020

Здесь вы видите, что я хочу подсчитать все посещения страницы, а затем набрать сумму. Нет никакой ошибки, пока я не добавлю 'COUNT (hit.type =' PAGE ') AS PV_yo', и в этот момент он жалуется на 'совпадение страниц' page.page.pageTitle '. Я новичок в этом и в тупик ..

#standardSQL
SELECT
  pageTitle,
  contentGroup1,
  CASE
      WHEN SUM(pv_yo)<=400 THEN 1 * 0.4
      WHEN  SUM(pv_yo) <=800 THEN 2 * 0.4
      WHEN  SUM(pv_yo) <=1625 THEN 3 * 0.4
      WHEN  SUM(pv_yo) <=3250 THEN 4* 0.4
      WHEN  SUM(pv_yo)  <=6500 THEN 5 * 0.4
      WHEN  SUM(pv_yo) <=13000 THEN 6 * 0.4
      WHEN  SUM(pv_yo) <=26000 THEN 7 * 0.4
      WHEN  SUM(pv_yo) <=52000 THEN 8 * 0.4
      WHEN  SUM(pv_yo)<=104000 THEN 9 * 0.4
      WHEN  SUM(pv_yo)>104000 THEN 10 * 0.4
    ELSE
    0
  END
     AS PV_score,

FROM 
 ( SELECT
    hits.page.pageTitle,
    hits.contentGroup.contentGroup1,
    COUNT(hits.type = 'PAGE') AS PV_yo

  FROM
    `datasetname.ga_sessions_*` AS GA,
    UNNEST(GA.hits) AS hits,
    UNNEST(hits.customDimensions) AS CD
  WHERE
    CD.index = 3
    AND hits.contentGroup.contentGroup1 != '(not set)' )

GROUP BY
  pageTitle,
  contentGroup1
ORDER BY
  AVG_PV DESC

1 Ответ

1 голос
/ 06 марта 2020

Вам нужна агрегация, поэтому я предполагаю, что подзапрос должен быть:

SELECT hits.page.pageTitle,
       hits.contentGroup.contentGroup1,
       COUNTIF(hits.type = 'PAGE') AS PV_yo
FROM `datasetname.ga_sessions_*` AS GA CROSS JOIN
     UNNEST(GA.hits) AS hits CROSS JOIN
     UNNEST(hits.customDimensions) AS CD
WHERE CD.index = 3 AND
      hits.contentGroup.contentGroup1 <> '(not set)' 
GROUP BY hits.page.pageTitle,
         hits.contentGroup.contentGroup1;

Обратите внимание, что я изменил COUNT() на COUNTIF() - при условии, что вы используете BigQuery. В любом случае, COUNT() неинтересно, потому что это число не-1007 * значений, а не количество true значений.

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