結合 COUNT 和 GROUP BY 進行高效率的資料聚合
SQL 提供了強大的機制來在單一語句中執行計數和分組操作。當您需要確定資料集中不同值的頻率時,這特別有用。例如,計算居住在各個城鎮的使用者數量。
關鍵是將 COUNT
聚合函數與 GROUP BY
子句結合使用。 以下是實現這一目標的方法:
<code class="language-sql">SELECT town, COUNT(*) AS UserCount FROM user GROUP BY town;</code>
此查詢計算每個唯一 town
值的出現次數。 GROUP BY
子句確保計數根據城鎮進行分組,從而產生顯示每個城鎮和相應使用者數量的摘要。 在這種情況下,使用 COUNT(*)
比 COUNT(town)
更有效。
輸出將是一個包含兩個欄位的表格:town
和 UserCount
,其中 UserCount
表示每個城鎮的使用者總數。 例如,對於三個城鎮(哥本哈根、紐約、雅典)和總共 58 個用戶,結果可能如下所示:
Town | UserCount |
---|---|
Copenhagen | 20 |
New York | 20 |
Athens | 18 |
或者,您可以使用變數來儲存使用者總數並將其包含在結果集中:
<code class="language-sql">DECLARE @TotalUsers INT; SELECT @TotalUsers = COUNT(*) FROM user; SELECT DISTINCT town, @TotalUsers AS TotalUserCount FROM user;</code>
此方法計算使用者總數,然後在輸出中將此總數與每個城鎮一起顯示。 請注意,此方法將重複每個城鎮的總用戶計數。 當需要分組計數時,為了清晰和高效,通常首選第一種方法。
以上是如何在一條SQL語句中同時對資料進行計數和分組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!