Ошибка в планировании CTE в MariaDB

У меня есть следующая консультация, которая использует один subquery чтобы получать максимальную общую сумму таблицы

SELECT clienteNumero, orden, monto FROM pagos 
WHERE monto = (SELECT MAX(monto) FROM pagos);

Которая функционирует и возвращает меня

clienteNumero   orden   monto
6               235     324566

Однако, когда я стараюсь использовать одну CTE таким образом

WITH Maximo AS(
    SELECT clienteNumero, orden, MAX(monto) FROM pagos
)
SELECT * FROM Maximo;

Он дает мне правильную общую сумму, но clienteNumero y el número de orden también esta mal

clienteNumero   orden   MAX(monto)
1               230      324566

Они помогают мне идентифицировать пожалуйста то, что ясно плохое в планировании?

1
задан 18.03.2019, 20:38
1 ответ

Конечно дело в том, что у тебя есть она expresiГіn, что он производит временную таблицу плохо письменная. Попытайся asГ-:

WITH Maximo AS(
    SELECT clienteNumero, orden, monto FROM pagos 
      WHERE monto = (SELECT MAX(monto) FROM pagos)
)
SELECT * FROM Maximo;
1
ответ дан 02.12.2019, 05:28
  • 1
    Тогда я понял плохо концепцию CTE так как creí что были, чтобы уже не делать субконсультации –  18.03.2019, 21:31
  • 2
    Даже идея, я только что не открыл их, но, segú n учебник, у них есть хорошая внешность: dev.mysql.com/doc/refman/8.0/en/with.html – David JP 18.03.2019, 21:33
  • 3
    Доводить до сведения, что эта ссылка - к MySQL и не в mariadb –  18.03.2019, 21:35
  • 4
    CTE с WITH служит для того, чтобы создать вид " VISTA" ненастье, которой ты можешь делать потом консультации, в которых ты нуждаешься, но чтобы создавать ее, ты должен обусловливать ее равно как любой SELECT – JoseDEV 18.03.2019, 21:36
  • 5
    ¿ И у них ограничения совещаний есть или они могут включать субконсультации? – David JP 18.03.2019, 21:37

Теги

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