我有一个包含电话号码(字符串)和姓名(字符串)的数据库表
同一个数字在不同行可能有不同的名字
给定一个数字,我想选择最常用的名字
例如给定以下数据,如果使用 555.1234 我应该从查询 Frank 中返回
Number | Name
-----------------
555.1234 | Frank
555.1234 | Fran
555.1234 | James
555.1234 | Frank
555.1233 | Jesse
似乎我应该能够以某种方式组合 distinct 和 Max,但我无法想出正确的查询来执行此操作。有什么想法吗?
最佳答案
如果您不知道要传递给查询的电话号码是什么,则可以使用以下方法:
SELECT Number, Name, COUNT(Name) AS NameCount
FROM test
GROUP BY Number, Name
HAVING NameCount > 1
Order BY NameCount DESC
LIMIT 1
这将通过单个名称为您提供最常用的电话号码,并返回电话、姓名和计数。
这是我用来尝试查询的 test
表及其值:
Number | Name
555.1234 | Frank
555.1234 | Fran
555.1234 | James
555.1234 | Frank
555.1234 | Jesse
555.2234 | Frank
555.1234 | Jesse
555.1234 | Frank
让我知道这是否适合您!
关于sql - 选择最大不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5173382/