Проблема с SQL CTE - PullRequest
       3

Проблема с SQL CTE

0 голосов
/ 07 апреля 2020

Пишет sql статистику, и запрос CTE работает, но когда обернут, он дает мне синтаксическую ошибку:

В синтаксисе SQL есть ошибка; проверьте руководство, соответствующее вашей MySQL версии сервера, для правильного синтаксиса для использования рядом с 'dateCTE (id, firstDate) AS (выберите id, min (date') в строке 1

With dateCTE (id, firstDate) AS (
select id, min(date)
from notes
where deletion_time is null
and signed_time is not null
group by 1)

select *
from dateCTE;

Снимите, извините, где был пункт where, я просто пропустил его при копировании в stackoverflow.

Ответы [ 3 ]

0 голосов
/ 07 апреля 2020

Две вещи. Вам не хватает where в CTE. И вам не хватает select. Итак:

With dateCTE (id, firstDate) AS (
      select id, min(date)
      from notes
      where deletion_time is null and signed_time is not null
      group by 1
    )
select *
from dataCTE;

Примечание: предполагается, что ваша база данных поддерживает group by 1.

0 голосов
/ 07 апреля 2020

У нас работает 5.7, а не 8, и это просто не поддерживается.

0 голосов
/ 07 апреля 2020

Не знаю, зачем вам нужен cte, вам может помочь только один оператор select:

select id, min(date)
from notes
where deletion_time is null and signed_time is not null
group by id;

Примечание: вам нужен оператор where для фильтрации null s и вызовов `cte немедленного после объявления:

With dateCTE (id, firstDate) AS (
      select id, min(date)
      from notes
      where deletion_time is null and signed_time is not null
      group by id
    )
select *
from dataCTE;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...