Top.Mail.Ru
Ответы

Вопрос по MySQL

> WITH TempTable AS (
-> SELECT *, Productcount * Price AS TotalPrice FROM Products WHERE Manufacturer = 'Apple' LIMIT 2
-> )
-> SELECT * FROM TempTable UNION ALL
-> SELECT '', '', '', '', 'Total:', SUM(TotalPrice) FROM TempTable;

Задача стояла, у каждой модели телефона найти общую сумму за все телефоны и внеси эту сумму в totalPrice.
Далее, необходимо было отдельной строкой посчитать сумму этих сумм (капитализация вообще всего склада телефонов).
Есть ли другие варианты решения этой задачи?

По дате
По рейтингу
Аватар пользователя
Гений

Структуру таблиц покажи

Аватар пользователя
Ученик
Аватар пользователя
Гений

Насколько понял, тебе просто надо посчитать SELECT SUM(ProductCount * Price) AS totalPrice FROM products WHERE Manufacturer = 'Apple';

Аватар пользователя
Ученик

SELECT Manufacturer, COUNT(ProductName) AS Models FROM Products GROUP BY Manufacturer;

Получил
+--------------+--------+
| Manufacturer | Models |
+--------------+--------+
| Samsung | 20 |
| Apple | 15 |
| Xiaomi | 25 |
| Nokia | 20 |
| ZTE | 20 |
| Huawei | 25 |
| Sony | 20 |
+--------------+--------+

И как мне теперь получить дополнительнной строкой ИТОГО: (20+15+25+20+20+25+20)

Аватар пользователя
Искусственный интеллект

>Есть ли другие варианты решения этой задачи?
Разумеется есть. Кроме твоего "варианта" есть еще правильный. Например, такой:

123456
 SELECT Manufacturer, SUM(Productcount * Price) AS TotalSales
FROM Products 
GROUP BY Manufacturer
UNION ALL
SELECT 'TOTAL', SUM(Productcount * Price)
FROM Products  
Аватар пользователя
Ученик

Этот ответ подходит, если надо вывести сумму со всей таблицы по всем производителям и их моделям телефонов. Если речь про взятых отдельно производителей, то этот вариант не работает.



Видео по теме