SQLite Как использовать сгенерированные столбцы для выполнения дополнительных вычислений в одном запросе - PullRequest
0 голосов
/ 08 марта 2019

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

select date(created_at) as date,
       count(distinct case when platform = 'Android' then user_id end) as 
       Android,
       count(distinct case when platform = 'iOS' then user_id end) as iOS,
       calculated Android + calculated iOS as Total
from dataset
group by 1;

Мой вопрос к последнему столбцу «Всего», созданному выше. В SAS есть встроенная функция «вычисление», которая распознает уже созданный столбец и позволяет использовать этот столбец для других вычислений.

Существует ли нечто подобное в SQLite или подзапрос - единственный другой вариант?

1 Ответ

0 голосов
/ 08 марта 2019

Вам необходимо использовать подзапрос или CTE в стандартном SQL:

select d.*, (Android + iOS) as Total
from (select date(created_at) as date,
             count(distinct case when platform = 'Android' then user_id end) as Android,
             count(distinct case when platform = 'iOS' then user_id end) as iOS,
      from dataset
      group by date(created_at)
     ) d;

Ключевое слово calculated представляет собой удобное расширение в proc sql. Однако он недоступен в других базах данных.

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