Например, у меня есть таблица вроде этого:
product | quantity | something ------------------------------- abc | 5 | 2 xzy | 5 | 2 asd | 10 | 2
Когда мне нужна вся запись, мне это нравится и получаю 3 результата:
select * from tableName
Но я хочу получить 4-й ряд для общего количества (50) и чего-то (6). Возможно ли это в sql-запросе или мне нужно зацикливать мой результат, чтобы получить итоговое значение после выполнения запроса? Я хочу сделать это в запросе, если это возможно.
(SELECT product, quantity, something FROM tablename) UNION (SELECT "all" AS product, SUM(quantity) AS quantity, SUM(something) AS something FROM tablename)
Это рабочий запрос. Он добавит четвертую строку по желанию в конце вашего результата
Вы можете использовать rollup для генерации итогов, но вы должны изменить его на агрегатную функцию, например:
SELECT product, sum(quantity), sum(something) FROM tableName GROUP BY product WITH ROLLUP
Ты мог
SELECT Product, Quantity, Something FROM TABLENAME UNION SELECT 'ALL', SUM(Quantity),SUM(Something) FROM TABLENAME
Однако это не добавит строку в вашу таблицу. Это, вероятно, не очень хорошая идея.
$ q = "выберите сумму (количество), сумму (что-то) из tableName";
это не лучший способ решить это, но должен сделать трюк
select product, quantity, something from tableName union select 'sum', sum(quantity), sum(something) from tableName