超过 1 列有差异
我知道这听起来有点傻,但现在我需要一个解决方案。假设我有一个表:
userid | category
-------+---------
derkv2 | Batch
markj | HTFS
marjk | TERMK
如何返回唯一的行,只取用户所属的第一个类别? 所以它看起来像:
userid | category
-------+---------
markj | HTFS
derkv2 | BATCH
I know this sounds a bit silly, but as of now I need a solution. Say if I have a table:
userid | category
-------+---------
derkv2 | Batch
markj | HTFS
marjk | TERMK
How can I return unique rows, only take the first category the user belongs to?
So it will look like:
userid | category
-------+---------
markj | HTFS
derkv2 | BATCH
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您必须完全标识要检索的每一行。假设你的桌子制作精良并且具有独特的 PK,那么你可以按照以下方式做一些事情:
You must fully identify each row that you want to retrieve. Assuming that your tables are well-crafted and have a unique PK then you could do something along these lines:
我会使用分区。让您无需拆散表格即可进行聚合。将分区添加到源表中,它成为该过程中的唯一约束。
结果
--x--|--y--
--A--|--1--
--A--|--2--
--A--|--3--
--B-| --1--
--C--|--1--
--C--|--2--
等
I would use a partition. Let's you aggregate without ripping apart table. Add the partition to your source table and it becomes a unique contraint in the process.
Results
--x--|--y--
--A--|--1--
--A--|--2--
--A--|--3--
--B-|--1--
--C--|--1--
--C--|--2--
etc