【问题标题】:How to take SUM of all COUNTs?如何取所有 COUNT 的总和?
【发布时间】:2018-06-07 02:38:57
【问题描述】:

我是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

然后,我想得到 sum = 45

【问题讨论】:

    标签: mysql


    【解决方案1】:

    您可以将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
    

    【讨论】:

      【解决方案2】:

      要从您的表中获取所有计数的总和,您可以将查询编写为

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

      按照您的方法,您可以将联合查询包装为子选择,然后对结果应用总和

      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
      

      【讨论】:

        猜你喜欢
        • 2021-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-19
        • 2019-05-04
        • 2022-01-03
        • 1970-01-01
        相关资源
        最近更新 更多