Sql 添加多个计数查询的结果
我试图在一个查询中获取几个计数的总和:Sql 添加多个计数查询的结果,sql,mysql,Sql,Mysql,我试图在一个查询中获取几个计数的总和: SELECT( SELECT COUNT( * ) FROM comments + SELECT COUNT( * ) FROM tags + SELECT COUNT( * ) FROM search ) 我错过了一些东西。我发现语法错误。还有一个错误(但不确定MySQL是否支持-在SQL Server中工作): SELECT ( SELECT COUNT(*) FROM comments )
SELECT(
SELECT COUNT( * )
FROM comments +
SELECT COUNT( * )
FROM tags +
SELECT COUNT( * )
FROM search
)
我错过了一些东西。我发现语法错误。还有一个错误(但不确定MySQL是否支持-在SQL Server中工作):
SELECT ( SELECT COUNT(*) FROM comments )
+ ( SELECT COUNT(*) FROM tags )
+ ( SELECT COUNT(*) FROM search )
是的,没错。注意:在Oracle中,您必须将“from dual”添加到该语法中。奇怪的是,您的每种语法和公认答案的SQL的优缺点是什么?就性能而言,一个更好吗?还有什么吗?对Liao:运行查询分析器,看看它说了什么。它们可能是同义词。非常好+1表示SQL语句的优雅。它们应该相同;我喜欢我的,因为它打字少很多D@Matt:啊,是的!一个符合我心意的男人——懒惰!我的想法来自于必须一直向非技术人员解释它;额外的按键减少了解释的冗长性。:-@n8wrl:比你快了几分钟。除了dotjoe的catch之外,仅供参考,列别名仅在第一个子选择中需要,因为在联合操作期间,其他三个子选择中忽略了它。@Ken:谢谢。我真正想要的是语法,它允许我引用sum()中的第一列,而不管它的名称如何。没有快乐。
SELECT (
SELECT COUNT(*)
FROM comments
) +
(
SELECT COUNT(*)
FROM tags
) +
(
SELECT COUNT(*)
FROM search
)
SELECT SUM(Counts) FROM
(SELECT COUNT(*) AS Counts FROM COMMENTS UNION ALL
SELECT COUNT(*) FROM Tags UNION ALL
SELECT COUNT(*) FROM Search) s
SELECT SUM(ThisCount)
FROM (
SELECT COUNT(*) AS ThisCount
FROM comments
UNION ALL
SELECT COUNT(*) AS ThisCount
FROM tags
UNION ALL
SELECT COUNT(*) AS ThisCount
FROM search
)