Задать вопрос
@falcon_digit
Начинающий в AI

Функция UPDATE в PostgreSQL не принимает вложенный запрос?

Делаю задачи по курсу SQL на Stepik'е, параллельно их же делаю в PostgreSQL.
Такой запрос UPDATE с вложенным SELECT'ом в PostgreSQL выдаёт ошибку синтаксиса
UPDATE fine,
(SELECT  name, number_plate, violation
FROM fine
GROUP BY name, number_plate, violation
HAVING count(*) > 1
    ) query_in
SET sum_fine = sum_fine * 2 
WHERE fine.name = query_in.name AND fine.number_plate = query_in.number_plate AND fine.violation = query_in.violation AND fine.date_payment IS NULL;

ERROR: ОШИБКА: ошибка синтаксиса (примерное положение: ",")
LINE 1: UPDATE fine,
На Stepik'е этот код принимается без ошибки.
Т.е. в PostgreSQL так нельзя делать? Или это как то лечится?
P.S. В SQLiteStudio тоже ошибка синтаксиса.
  • Вопрос задан
  • 544 просмотра
Подписаться 1 Простой 7 комментариев
Пригласить эксперта
Ответы на вопрос 2
@kalapanga
А чего спрашивать-то? Прочитайте документацию postgresql про update - есть там подобный синтаксис или нет? Уже понятно, что нет. Возможно, Вам подойдёт with?
А что касается Степиков и подобных, то в курсах по SQL обязательно должна быть указана версия/стандарт sql на которых курс основан, чтобы подобные казусы выявлять.
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
Это скорее всего неправильно.
SELECT  name, number_plate, violation
FROM fine
GROUP BY name, number_plate, violation
HAVING count(*) > 1

если используется GROUP BY то в выражении SELECT должна стоять функция агрегации (count в данном случае)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы