sql - 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 报表生成器)
解决方案
这给出了你想要的结果:
SELECT * FROM phones WHERE tel_priority = (SELECT MIN(tel_priority) FROM phones p WHERE p.unique_reference = phones.unique_reference)
假设phones
是表的名称。 当然,如果有超过 1 行包含给定
的最小值,那么所有这些行都将被获取。tel_priority
unique_reference
推荐阅读
- python - 如何设置伽马校正的最佳值
- c# - CefSharp.OffScreen 库是否与 .NET Standard 2.0 兼容?
- java - 发送消息,一个播放器类的实例,可以和其他播放器通信
- python - python用不同的参数模拟一个函数并用返回值断言
- public-key - 使用 OpenSSL C 库 Envelope 例程进行公钥加密,以通用标准保存输出
- arrays - 如何插入具有列数组的数据框
> 在 Postgresql 中? - android - 如何进行当前余额?
- postgresql - 将 Spring Boot 连接到 PostgreSQL 失败
- python - 比较两个包含文本的相似图像
- entity-framework - 无法翻译 linq 查询。以可以翻译的形式重写查询 .NETCore