在 SQL中給定另一列的值,找出某一列最常見的值
在表包含多個列的場景中,例如“country”、“food_id”和“eaten”,一項常見任務是確定其中一列(“food_id”)最常出現的值另一列(“國家/地區”)的每個唯一值。
問題中提到的一種方法涉及建立臨時表並執行多個子查詢來計算計數、尋找最大計數並檢索相應的「 food_id」值。雖然這個方法很實用,但看起來很麻煩。
幸運的是,PostgreSQL 9.4 引入了一個更簡單的解決方案:mode() 函數。此函數提供了一種有效的方法來尋找分組表達式定義的每個群組中指定列的最常見值。
要使用mode() 函數執行此任務,可以使用以下SQL 查詢:
SELECT mode() within group (order by food_id) FROM munch GROUP BY country
此查詢利用mode() 函數來計算每個唯一「國家」值的最常見“food_id”值。 WITHIN GROUP (ORDER BY food_id) 子句確保 mode() 函數對每個國家/地區群組內的「food_id」欄位進行操作,在識別模式之前按升序對值進行排序。
此查詢的結果正如所提供的答案中所演示的,將是一個顯示“國家/地區”及其相應的最常見“food_id”值的表格:
country | mode -------------- GB | 3 US | 1
以上是如何在 SQL 中找到每個國家/地區最常見的食品 ID?的詳細內容。更多資訊請關注PHP中文網其他相關文章!