HIVE HQL中如何实现两个count统计结果的相加
双表行数统计求和的实现方案
标量子查询写法
适配支持标量子查询的数据库(Oracle、MySQL、PostgreSQL等均支持),直接将两个统计结果相加即可:
-- 仅返回两张表的总行数 SELECT (SELECT COUNT(*) FROM table1) + (SELECT COUNT(*) FROM table2) AS total_rows FROM dual;
如果需要同时展示两个表各自的行数和总合计:
-- 同时返回单表行数与总合计 SELECT (SELECT COUNT(*) FROM table1) AS table1_count, (SELECT COUNT(*) FROM table2) AS table2_count, (SELECT COUNT(*) FROM table1) + (SELECT COUNT(*) FROM table2) AS total_count FROM dual;
如果你的原始查询语句无法运行,通常是所用数据库不支持dual虚拟表(比如SQL Server无该系统表),直接删除语句末尾的FROM dual即可正常执行。
全兼容UNION ALL写法
不依赖数据库特性,所有主流SQL环境都可以运行:
SELECT SUM(row_num) AS total_count FROM ( SELECT COUNT(*) AS row_num FROM table1 UNION ALL SELECT COUNT(*) AS row_num FROM table2 ) t;
内容的提问来源于stack exchange,提问作者tash
相关产品推荐
相关产品推荐

