Задать вопрос
dcc
@dcc
junior

Почему сортировка по сумме двух полей не работает?

Запрос:
SELECT parthner.parthner_id, (
	select count(parthner_referal.user_id) from parthner_referal where parthner_referal.parthner_id = parthner.parthner_id
) as count,
count(payment.amount) as amount,
user.name, user.external_uid
FROM parthner

left JOIN user ON parthner.user_id = user.user_id
LEFT JOIN parthner_referal ON parthner.parthner_id = parthner_referal.parthner_id
LEFT JOIN payment ON parthner_referal.user_id = payment.user_id AND status = 1
WHERE parthner_referal.created_at BETWEEN '2022-10-01 22:26:02' AND '2023-11-13 22:26:02'

group by parthner_id
order by count + amount desc


Order by отказывается корректно работать. Не считает поля, будто игнорируется какое-то из двух поле
Вывод:
+-------------+------+--------+---------------------------------+--------------+
| parthner_id | count | amount | name                            | external_uid |
+-------------+------+--------+---------------------------------+--------------+
|           2 |    5 |      6 | eeeeeeeeeee                        |   111111 |
|           1 |    6 |      6 | eeeewewe                           |    22222 |
|           3 |    1 |      0 | qwewe eweweeee               |   333333 |
+-------------+------+--------+---------------------------------+--------------+
  • Вопрос задан
  • 52 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@alexalexes
Оберните все в подзапрос и посчитайте уже там:
select A.*, (A.count + A.amount) total
from (...) A
order by total desc
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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