Вы сомневаетесь с функцией SUM в Mysql

Привет я надеюсь, что они могут помогать мне со следующим, давайте говорить, что у меня есть эта пластина

Productos->Nombre de la tabla
Nombre->campo
Valor->campo

с этими записями

Помидор-> 500 Лук-> 400 и имейте этот consula

 `SELECT SUM(Valor)as Total FROM Productos;`

это возвратило бы меня, что первая запись стоит 900, Вы делаете мне сумму хорошо, но Вы не показываете мне все записи и Вы даете мне понимать, что помидор стоит 900

я это попробовал так также

`SELECT Nombre,Valor,SUM(Valor)as Total FROM Productos GROUP BY Nombre;` 

с этой консультацией, если Вы показываете мне все записи и значения, но Вы не делаете мне сумму.

Однако то, что я пробую, состоит в том, что Вы показываете мне все записи и сумму, чтобы знать, что то, что я складываю

Большое спасибо.

1
задан 10.11.2019, 19:56
1 ответ

Давайте видеть..., - ли твои продукты Гєnicos в этой таблице (что serГ - в это mГЎs lГіgico):

 CREATE TABLE productos(nombre text, valor integer);
 INSERT INTO productos(nombre, valor)
 VALUES ('Tomate', 500)
  , ('Cebolla', 400)
  , ('Lechuga', 200);

| Nombre  | valor |
------------------
| Tomate  | 500   |
| Cebolla | 400   |
| Lechuga | 200   |

И ты хочешь показать cuГЎnto valdrГ, - чтобы покупать общее количество продуктов, занесенных в список, чтобы получать что-то как

| Nombre  | valor | Total
-------------------------
| Tomate  | 500   | 1100
| Cebolla | 400   | 1100
| Lechuga | 200   | 1100

ответ завись тебя versiГіn от MySQL.


MySQL v8

В versiГіn 8 ты можешь использовать window function:

SELECT nombre, valor, SUM(valor) OVER () AS total FROM productos;

Видеть полный пример в DBFiddle


MySQL 5.7 или предыдущий

В этой versiГіn не window functions, и выбирать одну funciГіn атташе посольства, не объявляя критерия agrupaciГіn, или занося в список не совокупного поля, которое не составляло бы часть критерия agrupaciГіn , смоги функционировать ввиду settings MySQL, но formarlmente он был должен бросать ошибку:

SELECT nombre, valor, SUM(valor)as Total FROM productos GROUP BY nombre;

Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'стоимость' which is not functionally dependent on columns in GROUP BY clause; this is несовместимый with sql_mode=only_full_group_by

, Если ты расслабляешь эту condiciГіn:

SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));     
SELECT nombre, valor, SUM(valor)as Total FROM productos GROUP BY nombre;

Механизм entenderГЎ, что все не совокупные поля - часть group by, и obtendrГЎs результат, который не является тем, что ты искал:

| Nombre  | valor | Total
-------------------------
| Tomate  | 500   | 500
| Cebolla | 400   | 400
| Lechuga | 200   | 200

Правильного способа это делать в MySQL 5.7

SELECT  nombre, valor, suma.total  FROM productos
  JOIN (SELECT SUM(valor) as total FROM productos) as suma

Видеть полный пример в DBFiddle

2
ответ дан 01.12.2019, 12:09
  • 1
    большое спасибо друг сейчас я хочу скажи мне, чтобы мы что-то сказали, что он захотел разместить это в php, я вижу, что общее количество повторяется, осталась бы немного уродливой правда, если я помещаю 2 консультации в php одна, чтобы делать select и другая, чтобы делать суммой podre быть полезным? – Mariana 10.11.2019, 20:31
  • 2
    Ясно, что ты можешь. Завись, как ты захотел показать это, и, в prá ctica, если ты будешь использовать PHP, ты можешь использовать простую консультацию в таблицу и суммировать tú чтобы получать общее количество – amenadiel 10.11.2019, 20:33