SQL - группировка с использованием псевдонима / математического вычисления / где - PullRequest
0 голосов
/ 10 октября 2019

У меня проблемы с созданием SQL-запроса с псевдонимом в столбце и использованием псевдонима с группированием по. Насколько я понимаю, группа обрабатывается до создания псевдонима столбца. Я пытался использовать подгруппу, но я не могу получить правильный синтаксис. Я получаю «ORA-00933: команда SQL не завершена должным образом» для обоих запросов. Я использую функцию формата Python для вставки значений, таких как дата эпохи Int. Могу ли я получить помощь по синтаксису?

исходная попытка

  SELECT
                    SUM(wall_clock_time) AS workToBeDone,
                    FLOOR((event_time-{fromTs})/{interval}) as period
                FROM {table}
                WHERE submit_time >= {fromTs} AND event_time < {untilTs}
                GROUP BY period
                ORDER BY period

Попытка подгруппы

           SELECT
                SUM(wall_clock_time) AS workToBeDone,
                period
            FROM
              (
              SELECT
                wall_clock_time,
                (SELECT FLOOR((event_time-{fromTs})/{interval}) FROM {table} WHERE submit_time >= {fromTs} AND event_time < {untilTs}) as period
              FROM
                {table}
              WHERE submit_time >= {fromTs} AND event_time < {untilTs}) AS period
              ) AS inline
            GROUP BY period
            ORDER BY period;

1 Ответ

0 голосов
/ 10 октября 2019

Я не уверен, как даты передаются в этом запросе, поэтому я использую фактические значения, чтобы показать запрос.

SELECT SUM(workToBeDone) AS workToBeDone,
PERIOD 
FROM
(SELECT
   wall_clock_time AS workToBeDone,
   FLOOR((event_time- to_date('10-oct-2019','dd-mon-yyyy'))/10) as period
FROM {table}
WHERE submit_time >= to_date('10-oct-2019','dd-mon-yyyy')
AND event_time < to_date('10-oct-2019','dd-mon-yyyy'))
GROUP BY PERIOD
ORDER BY PERIOD;

Надеюсь, wall_clock_time не является столбцом типа данных даты.

Ура !!

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