首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多列上的Distinct

多列上的Distinct
EN

Stack Overflow用户
提问于 2010-11-26 11:03:34
回答 2查看 61关注 0票数 1

我知道这听起来有点傻,但现在我需要一个解决方案。假设我有一张桌子:

代码语言:javascript
运行
复制
userid | category  
-------+---------  
derkv2 | Batch  
markj  | HTFS  
marjk  | TERMK  

如何返回唯一行,只获取用户所属的第一个类别?因此,它将看起来像:

代码语言:javascript
运行
复制
userid | category  
-------+---------  
markj  | HTFS  
derkv2 | BATCH
EN

回答 2

Stack Overflow用户

发布于 2010-11-26 11:13:27

您必须完全标识要检索的每一行。假设您的表是精心制作的,并且有一个唯一的PK,那么您可以按照以下方式做一些事情:

代码语言:javascript
运行
复制
select
  *
from
  table
where
  pk in (select min(pk) from table group by userid)
票数 0
EN

Stack Overflow用户

发布于 2013-04-12 04:59:21

我会使用分区。让我们在不撕裂表格的情况下进行聚合。将分区添加到源表中,它将成为进程中的唯一约束。

代码语言:javascript
运行
复制
    select col1, 
           col2, 
           row_number() OVER (Partition BY col1 order by col2) ID
           From dbo.Example

结果

--x--|--y--

--A--|--1--

--A--|--2--

--A--|--3--

--B-|--1--

--C--|--1--

--C--|--2--

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4282260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档