首页 > 解决方案 > SQL:如何选择每个唯一标识符的值最低的记录

问题描述

我是 SQL 新手,过去几天一直在寻找答案,但似乎找不到明确的答案。(或者我不理解给出的解决方案,因为它们与我的场景不匹配)

我有一个类似于下面的表:

unique reference|tel number| tel priority
123|0123456910|2
123|0654321910|6
214|0056897910|4

我只想输出每个唯一引用的电话号码优先级最低的数据,所以在上面的例子中我想要:

unique reference|tel number| tel priority
123|0123456910|2
214|0056897910|4

非常感谢任何指针/指导,我已经尝试过 MIN() 函数,但无法将其作为输出执行,所以我认为我遗漏了一些东西。

(我有 SQL server 2008 r2 或 Microsoft 报表生成器)

标签: sqlsql-serversql-server-2008-r2reportbuilder3.0

解决方案


这给出了你想要的结果:

SELECT * FROM phones WHERE tel_priority = (SELECT MIN(tel_priority) FROM phones p WHERE p.unique_reference = phones.unique_reference)

假设phones是表的名称。 当然,如果有超过 1 行包含给定
的最小值,那么所有这些行都将被获取。tel_priorityunique_reference


推荐阅读