Как посчитать элемент x, если условие y выполнено (bigquery) - PullRequest
0 голосов
/ 26 июня 2018

Я новичок в машинном обучении, и у меня одна из первых проблем с машинным обучением. Я сам много исследовал, но не смог найти решение этого вопроса.

Я создаю новые переменные из моего набора данных в Bigquery. Одна из переменных состоит в подсчете переменной (x), если выполняется условие в переменной (y). Я не могу использовать WHERE или HAVING, поскольку условие связано только с вычислением этой конкретной переменной.

Код более или менее похож на этот:

COUNT(DISTINCT sessionid IF(date > “2018-06-01” && date < “2018-06-30”)) 
AS sessions_lastmonth

Я знаю, что этот код неправильный и не может быть, но это просто способ выразить более или менее то, что мне нужно. Цель состоит в том, чтобы узнать количество сеансов за определенный период. Я не могу использовать счетчик для даты, потому что в один день вы можете иметь более одного сеанса, и не каждый ряд - это другой сеанс (сеанс может иметь несколько строк, потому что пользователь может просматривать много страниц в одном сеансе).

Спасибо!

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Вы сказали, что не можете использовать WHERE, поэтому я предполагаю, что ответ, который предлагает использовать WHERE, не будет летать?

Я думаю, что вам может понадобиться использовать CASE, поэтому ваш запрос может выглядеть примерно так:

COUNT(DISTINCT CASE WHEN date > “2018-06-01” AND date < “2018-06-30” THEN sessionid ELSE NULL END) AS sessions_lastmonth

Этот синтаксис может быть неправильным, но он может помочь вам на правильном пути?

0 голосов
/ 26 июня 2018

ниже для BigQuery Standard SQL

COUNT(DISTINCT IF(date >= '2018-06-01' AND date <= '2018-06-30', sessionid, NULL)) AS sessions_lastmonth
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...