Как взять СУММУ всех СЧЕТОВ?

0

Я новичок в mysql.

У меня есть запрос, чтобы получить счет из разных таблиц, и он работает нормально. Но теперь я хочу соединить все 3 запроса COUNT в 1, как SUM (COUNT1, COUNT2, COUNT3)

select COUNT(*) as count1, 0 as count2, 0 as count3 from table1 
UNION ALL 
select 0 as count1, COUNT(*) as count2, 0 as count3 from table2 
UNION ALL 
select 0 as count1, 0 as count2, COUNT(*) as count3 from table3

Например, count1 = 10, count2 = 20 и count3 = 15

Тогда я хочу получить сумму = 45

Теги:

2 ответа

4

Вы можете поместить UNION в подзапрос, а затем в SUM() подсчеты. Но нет необходимости размещать их в отдельных столбцах в каждом объединенном запросе.

SELECT SUM(count) AS total
FROM (
    SELECT COUNT(*) AS count FROM table1
    UNION ALL
    SELECT COUNT(*) AS count FROM table2
    UNION ALL
    SELECT COUNT(*) AS count FROM table3
) AS subquery
3

чтобы получить сумму всех счетов из ваших таблиц, вы можете написать запрос как

select 
(select COUNT(*) from table1) +
(select COUNT(*) from table2) +
(select COUNT(*) from table3) as total

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

SELECT SUM(count1) + SUM(count2) + SUM(count3) total
FROM (
    SELECT COUNT(*) AS count1, 0 AS count2, 0 AS count3 FROM table1 
    UNION ALL 
    SELECT 0 AS count1, COUNT(*) AS count2, 0 AS count3 FROM table2
    UNION ALL 
    SELECT 0 AS count1, 0 AS count2, COUNT(*) AS count3 FROM table3
) t

Ещё вопросы

Сообщество Overcoder
Наверх
Меню