在 SQL 中查找另一列中每个值的最常见值
使用表格数据时,通常需要识别特定列最常出现的值。在 SQL 上下文中,可以使用多种方法来实现这一点。
传统方法:
一种常见的方法是利用一系列中间步骤,如问题中表现出来。这涉及创建临时表来计算出现次数、识别最大值并对结果进行适当分组。虽然这种方法很实用,但它可能很麻烦并且容易出错。
优雅的解决方案:
现代版本的 SQL,例如 PostgreSQL 9.4 及更高版本,提供简化的解决方案此任务的解决方案。 mode() 函数返回指定组内最常见的值。这消除了复杂的聚合和操作的需要。
示例:
考虑下表:
Column | Type | Modifiers |
---|---|---|
country | text | |
food_id | int | |
eaten | date |
要查找对于每个国家最常吃的,我们可以使用以下查询:
select mode() within group (order by food_id) from munch group by country
直接这个查询返回每个国家/地区的模式,提供更直接、更高效的方法。
以上是如何使用 SQL 高效地为另一列中的每个唯一值查找一列中最频繁的值?的详细内容。更多信息请关注PHP中文网其他相关文章!