+ -
当前位置:首页 → 问答吧 → 聚合函数可以在一个SQL相加吗

聚合函数可以在一个SQL相加吗

时间:2011-12-15

来源:互联网

我想统计5个表的总行数,能否在一个SQL中实现。
SELECT COUNT(*) FROM t1+SELECT COUNT(*) FROM t2+SELECT COUNT(*) FROM t3+SELECT COUNT(*) FROM t4+SELECT COUNT(*) FROM t5.上面5个表结构完全一样,不要用 select count(*) from (select * from t1 union selctt * from t2 union selctt * from t3 union selctt * from t4 union selctt * from t5).
谢谢!

作者: shzhouhuiyu   发布时间: 2011-12-15

SQL code
select 
(SELECT COUNT(*) FROM t1)+
(SELECT COUNT(*) FROM t2)+
(SELECT COUNT(*) FROM t3)+
(SELECT COUNT(*) FROM t4)+
(SELECT COUNT(*) FROM t5)

作者: qianjin036a   发布时间: 2011-12-15

SQL code
select 
(SELECT COUNT(*) FROM t1)+
(SELECT COUNT(*) FROM t2)+
(SELECT COUNT(*) FROM t3)+
(SELECT COUNT(*) FROM t4)+
(SELECT COUNT(*) FROM t5)

作者: ssp2009   发布时间: 2011-12-15

慢了。

作者: ssp2009   发布时间: 2011-12-15

用union all才符合原先的逻辑,
SQL code

select count(*) from 
(
select * from t1 
union all 
selctt * from t2 
union all 
selctt * from t3 
union all 
selctt * from t4 
union all 
selctt * from t5
) t6

作者: ap0405140   发布时间: 2011-12-15

SQL code
SELECT COUNT(*) FROM t1+SELECT COUNT(*) FROM t2+SELECT COUNT(*) FROM t3+SELECT COUNT(*) FROM t4+SELECT COUNT(*) FROM t5


實現用sysindexes統計

快你N倍

作者: roy_88   发布时间: 2011-12-15

SQL code
SELECT SUM(rows)
FROM sysindexes 
WHERE indid<2 AND OBJECT_NAME(ID) IN('t1','t2','t3','t4','t5')


以你的5個表為例

作者: roy_88   发布时间: 2011-12-15

引用 6 楼 roy_88 的回复:
SQL code

SELECT SUM(rows)
FROM sysindexes
WHERE indid<2 AND OBJECT_NAME(ID) IN('t1','t2','t3','t4','t5')


以你的5個表為例

高!

作者: ap0405140   发布时间: 2011-12-15