【发布时间】:2011-07-13 18:17:16
【问题描述】:
我有以下疑问:
SELECT SUM(count)
FROM (SELECT 'artist' AS table_name, COUNT(*) as count FROM artist
UNION
SELECT 'persons' AS table_name, COUNT(*) as count FROM persons
UNION
SELECT 'track' AS table_name, COUNT(*) as count FROM track)
它按预期工作并返回正确的计数。但是现在当我执行以下查询时,我得到了不正确的计数:
SELECT SUM(count)
FROM (SELECT COUNT(*) as count FROM artist
UNION
SELECT COUNT(*) as count FROM persons
UNION
SELECT COUNT(*) as count FROM track)
为什么第一个查询得到正确的计数而第二个没有?
【问题讨论】:
-
你能解释一下“不正确的计数”吗?如果不是您期望的总和,您能确定它在计数吗?
-
它只返回两个计数。正如@Joe Stefanelli 指出的那样,这是由于在 UNION 中消除了计数