powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вычисление с использованием псевдонима в MySQL
5 сообщений из 5, страница 1 из 1
Вычисление с использованием псевдонима в MySQL
    #40036368
robbbert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу sql запрос на MySQL который первым делом в SELECT суммирует строку SUMMA и присваивает псевдоним SUMMMMA, а дальше я хочу использовать этот псевдоним (значение его) для дальнейших операций с этой цифрой - например от неё получить процент для псевдонима PROC.

```
SELECT
SUM(`SUMMA`) AS SUMMMMA, -- сумма всех выводов
SUMMMMA / 100 * 60 AS PROC -- процент от суммы

FROM `OUT_PRICE`
```

Ошибка: SQLSTATE[42S22]: Column not found: 1247 Reference 'SUMMMMA' not supported (reference to group function)

Этот вариант не работает. Видимо нужно как то привести к числовому типу псевдоним... Работает если псевдоним SUMMMMA на 3 строке заменить всё тем же сложением SUM(`SUMMA`).

В будущем будем несколько подзапросов в SELECT, которые будут использовать SUMMMA для вычисления, и поэтому не хочется для каждого подзапроса вновь считать SUM(`SUMMA`).. Я думаю с каждым таким суммированием будет большая нагрузка..

Как быть в этой ситуации?

п.с. на php это можно было бы решить как мне нужно, но я хочу реализовать большинство вычислений в sql запросе
...
Рейтинг: 0 / 0
Вычисление с использованием псевдонима в MySQL
    #40036417
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
robbbert
Как быть в этой ситуации?
Использовать переменные.
Код: sql
1.
2.
3.
SELECT
   (@MySum := SUM(`SUMMA`)) AS SumTotal,   -- сумма всех выводов
   (@MySum / 100 * 60) AS SumPercent       -- процент от суммы


P.S. Ну и неплохо научиться давать именам полей/таблиц осмысленные названия на английском, а не на пиджине.
...
Рейтинг: 0 / 0
Вычисление с использованием псевдонима в MySQL
    #40036466
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что мешает использовать
Код: sql
1.
2.
3.
4.
5.
SELECT
SUM(`SUMMA`) AS SUMMMMA, -- сумма всех выводов
SUM(`SUMMA`) / 100 * 60 AS PROC -- процент от суммы

FROM `OUT_PRICE`

?

Если думаете, что суммирование будет выполнено дважды - таки нет.
...
Рейтинг: 0 / 0
Вычисление с использованием псевдонима в MySQL
    #40036524
robbbert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina
Что мешает использовать
Код: sql
1.
2.
3.
4.
5.
SELECT
SUM(`SUMMA`) AS SUMMMMA, -- сумма всех выводов
SUM(`SUMMA`) / 100 * 60 AS PROC -- процент от суммы

FROM `OUT_PRICE`

?

Если думаете, что суммирование будет выполнено дважды - таки нет.


А если ещё придется дальше использовать PROC ? Снова делать SUM(`SUMMA`) / 100 * 60 и вернется значение из "кэша"? например:

Код: sql
1.
2.
3.
4.
5.
6.
SELECT
SUM(`SUMMA`) AS SUMMMMA, -- сумма всех выводов
SUM(`SUMMA`) / 100 * 60 AS PROC -- процент от суммы
SUM(`SUMMA`) / 100 * 60  / 3 AS CRUSH -- дробить

FROM `OUT_PRICE`



Дальше ведь я могу ещё не один раз использовать то или иное вычисление. Поэтому даже чисто визуально с использованием "переменных" было бы лучше
...
Рейтинг: 0 / 0
Вычисление с использованием псевдонима в MySQL
    #40036552
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
robbbert
А если
Обновить сервер и использовать СТЕ.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вычисление с использованием псевдонима в MySQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]