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中文網其他相關文章!