sql - 仅从一列中为另一列中的每个值选择一个值,以及对应的其他列值
问题描述
这似乎是一个非常简单的问题,但我无法解决,想象一下我有下表:
ID MessageId ReceiverId
----------------------------
1 1 1
2 1 2
3 2 3
4 3 1
5 3 2
我想要一个在其列中具有唯一值的结果,这MessageId
意味着只有一行MessageId
是 1,无论哪一行。像这样的东西:
ID MessageId ReceiverId
----------------------------
1 1 1
3 2 3
4 3 1
如果它应该只返回一列,我不会使用GROUP BY
,因为我需要所有列。
解决方案
看来您需要相关的子查询:
select m.*
from msg m
where id = (select top (1) id
from msg m1
where m1.messageid = m.messageid
order by m1.ReceiverId
);
推荐阅读
- react-native - 反应本机滚动视图未正确包装文本元素(连续显示)
- mysql - 将 AUTO_INCREMENT 主键字段更改为 NOT NULL 可防止记录插入错误“字段没有默认值”
- html - 在 HTML body 标签中构建 3 个不同的部分
- synthesis - Yosys / abc 使用许多门而不是更好的单片单元
- ios - 如何摆脱适用于 iPhone X/更新版本的 Xcode 11 上的灰色空间?
- pandas - 对列和行求和
- c - 无法拖动或调整自定义框架窗口的大小
- python - Python中的输入显示逻辑
- matlab - 使用蒙特卡洛模拟 + 布朗桥的期权定价
- flutter - Flutter - 在新行中设置文本