COUNT(*)
多个表的结果:UNION 和笛卡尔积的比较跨多个表分析数据通常需要合并结果。 一个常见的任务是从不同的表中同时获取行计数。
假设您需要来自 tab1
和 tab2
的行计数。 UNION
查询可能看起来像是解决方案:
<code class="language-sql">SELECT COUNT(*) AS Count_1 FROM schema.tab1 UNION ALL SELECT COUNT(*) AS Count_2 FROM schema.tab2</code>
但是,这会产生一个垂直结果集,其中 Count_1
和 Count_2
位于不同的行中。对于更有组织的单行输出,请考虑笛卡尔积方法:
<code class="language-sql">SELECT (SELECT COUNT(*) FROM tab1) AS count1, (SELECT COUNT(*) FROM tab2) AS count2 FROM dual;</code>
此查询的工作原理如下:
dual
表(许多数据库系统中的虚拟表)提供单行,充当组合结果的框架。COUNT(*)
。count1
和 count2
,创建两列、单行输出。此方法有效地将两个表中的行计数合并为单个结构化行,从而产生所需的结果:
<code>count1 | count2 -------+------- 123 | 456</code>
以上是如何有效地将多个表中的 COUNT(*) 结果合并到一行中?的详细内容。更多信息请关注PHP中文网其他相关文章!