Как суммировать строковые значения экземпляров - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь суммировать столбец строковых значений, а затем разделить результат на другой столбец. Это то, что я пытался:

SUM(COUNT(state)/(epaper_opens))

Это дает мне ошибку "агрегации агрегатов не допускаются". Альтернативно, я пытался преобразовать столбец в цифру c или float64, но я получаю «Неверное число c значение» & «Неверное двойное значение)

SUM(CAST(state AS float64))

Вот полный запрос:

SELECT 
       state, 
       epaper_opens,
       CAST(send_at AS date) AS Sent,
       date AS Date, 
       date_diff(Date, CAST(send_at AS date), day) as Days, 
       #SUM(CAST(state AS float64))
       #SUM(COUNT(state)/(epaper_opens))
FROM analytics.fct_notifications

LEFT JOIN analytics.fcts_customer_activity_agg
  ON fct_notifications.customer_id = fcts_customer_activity_agg.subscription_id

WHERE state NOT LIKE "unproce%"
  AND state NOT LIKE "cancel%"
  AND subject NOT LIKE "Test%"
  AND customer_status = "Aktiv"
  AND epaper_opens IS NOT NULL
  AND DATE >= DATE_SUB(CAST(send_at AS date), INTERVAL 30 DAY)
  AND DATE <= DATE_ADD(CAST(send_at AS date), INTERVAL 30 DAY)

GROUP BY 1, 2, 3, 4, 5

1 Ответ

0 голосов
/ 20 марта 2020

Я думаю, что вы хотите countif():

countif(state = <val1>) as num_val1,
countif(state = <val2>) as num_val2,

И так далее.

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