GROUP BY 將同值資料分組,執行聚合函數;HAVING 為分組後的資料過濾:根據聚合函數或分組鍵設定條件;GROUP BY 分組後,HAVING 對分組結果過濾,只適用於聚合後的數據。
MySQL 中GROUP BY 和HAVING 的關係式
GROUP BY 和HAVING 都是MySQL 中用於聚合和過濾資料的子句。兩者協同工作,對分組後的資料進行匯總和篩選。
GROUP BY
GROUP BY 子句將相同值的資料分組在一起,並對每個群組執行聚合函數,例如 SUM、COUNT 和 AVG。它將資料集劃分為不同的群組,每個群組都有一個唯一的鍵值或一組鍵值。
HAVING
HAVING 子句用於篩選 GROUP BY 分組後的資料。它與 WHERE 子句類似,但只適用於聚合後的資料。 HAVING 子句允許使用者根據聚合結果對群組進行過濾,例如:
關係
GROUP BY 和HAVING 之間的關係如下:
範例
以下查詢使用GROUP BY 和HAVING 將訂單表分組和篩選:
<code class="sql">SELECT product_category, SUM(quantity) AS total_quantity FROM orders GROUP BY product_category HAVING SUM(quantity) > 100;</code>
此查詢將訂單按產品類別分組,並計算每個類別的總數量。然後,它使用 HAVING 過濾掉總數量小於 100 的類別。
以上是mysql中group by和having的關係的詳細內容。更多資訊請關注PHP中文網其他相關文章!