Как найти итог (сумму) в MySQL по псевдониму?

На самом деле у меня есть исходная база данных как

SELECT sum(data1,data2) as database_value,sum(data3,data4) as database_not_value  from table_name;

| ID | science_name_short    |database_value   | database_not_value| 
|  1 | Rhododendron phipli   |3                | 4                 |  
|  2 | Rhododendron felica   |5                |6                  |  
| 3  | Rhododendron deron    |5                | 7                 |   
| 4  | Rhododendron  sednuns |5                |8                  |  

и я хочу найти общее количество первых строк, 2-х строк, 3-х строк и показать их в общем столбце, поэтому я сделал

SELECT sum(data1,data2) as database_value,sum(data3,data4) as database_not_value,sum(database_value+database_not_value) as total
  from table_name;

| ID |     science_name_short    |database_value   | database_not_value|Total | 
|  1 | Rhododendron phipli       |3                | 4                 |   7  |
|  2 | Rhododendron felica       |5                |6                  |   11 |
|3   | Rhododendron deron        |5                | 7                 |   12 |
|4   | Rhododendron  sednuns     |5                |8                  |   13 |



 then i get error as column "database_value" does not exist

Этот запрос не может дать такой результат

Strawberry 31.05.2018 08:10

И, очевидно, это не ваши "исходные" данные.

Strawberry 31.05.2018 08:12

См. meta.stackoverflow.com/questions/333952/…

Strawberry 31.05.2018 08:12

Я не знал, что SUM может принимать в MySQL список аргументов CSV. Ой, погоди, это не может.

Tim Biegeleisen 31.05.2018 08:13

Дайте нам что-нибудь посмотреть (например, скрипт SQL), может быть, мы могли бы помочь ..

Romeo Sierra 31.05.2018 08:13

если вы не вернете свой первый скрипт в виде таблицы (или временной таблицы), вы не сможете рассматривать псевдоним как поле. так что просто повторите свой код, чтобы суммировать все 4 поля в сумме .... (если SUM может это сделать)

RizkiDPrast 31.05.2018 08:21
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
6
83
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не можете использовать псевдоним на том же уровне запроса, чтобы получить итог, вам нужно повторить свое выражение

SELECT sum(data1 + data2) as database_value,
sum(data3 + data4) as database_not_value,
sum(data1 + data2) + sum(data3+ data4)  as total
from table_name;

также sum() принимает один аргумент, поэтому я предполагаю, что вы добавляете свои наборы данных с помощью +, а не через запятую

спасибо Халид :)

Random guy 31.05.2018 08:23

Другие вопросы по теме