sql - SQL Server:从重复项中检索 1 个值
问题描述
我无法从每个重复项中检索最大 1 个值。当我没有在查询中包含名称时它工作正常,但是当我想要输入名称时,它会检索重复的行,即使我使用的是 MAX 函数。
这是一个例子:
SELECT
b.Name, MAX(a.receiver), a.DATE1 = MIN(a.DATE1)
FROM
Table1 a
INNER JOIN
Table2 b ON a.receiver = b.account
WHERE
Company IN (1,2,3,4,5)
GROUP BY
RECEIVER, b.name
结果:
NAME | Receiver | DATE1
Apple | 12345 | 2018-01-18
Apple A/S | 12345 | 2018-01-19
GDG | 54544 | 2018-01-20
BNS | 54455 | 2018-01-23
预期结果:
NAME | Receiver | DATE1
Apple | 12345 | 2018-01-18
GDG | 54544 | 2018-01-20
BNS | 54455 | 2018-01-23
解决方案
由于您似乎并不关心选择了哪个名称,因此只需在该列上放置一个聚合。
但是,相同的接收者 ID 可以具有不同的名称是没有意义的。看起来您在这里根本没有使用键或约束...
SELECT
min(b.name),
a.receiver,
DATE1 = min(a.DATE1),
FROM Table1 a
Inner join Table2 b
on a.receiver = b.account
WHERE
Company in (1,2,3,4,5)
group by RECEIVER
推荐阅读
- .net - Why compiller stills trhowing CA1062 once I validated public nullable parameter?
- spring-boot - 如何使用camel-activemq-starter的事务标志回滚消息
- javascript - Javascript按值重新排序对象数组
- javascript - 是否可以有一个容器在根据屏幕/窗口大小调整大小的同时保持其纵横比?
- javascript - jQuery 的 AJAX 执行顺序
- python - 有没有办法在 numba 中将 timedelta64 转换为 int64?
- ios - SwiftUI - 如何添加按钮作为导航标题?
- c# - 使用剃须刀页面更新
- python - 如何在多个函数中包含相同的 if 块?
- javascript - React Navigation,问题查找文件