首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >忽略特定列中的相同值。

忽略特定列中的相同值。
EN

Stack Overflow用户
提问于 2012-10-11 17:01:52
回答 3查看 125关注 0票数 2

我有一个可以正常工作的查询。但是,在id2列下返回相同int值的查询有问题。我只需要帮助获取一个值的实例,而忽略另一个实例。基本上抓取一个独特的id2。任何帮助都将不胜感激。还有,如果你需要澄清的话,请告诉我。

代码语言:javascript
复制
SELECT [id],[id1]
 ,[id2]
 ,[name]
 ,[date]
 ,[user]     
FROM [MyDatabase.table]
Where [date]>= dateadd(day,datediff(day,0,getdate()),-5)
ORDER BY [cid]

编辑1:

代码语言:javascript
复制
id1       id2    name        time                user
6466    171477  item1 2012-10-10 07:08:48.000   user1
6469    171477  item1 2012-10-10 07:11:01.000   user1
6468    171477  item1 2012-10-10 07:10:37.000   user1
6465    171477  item1 2012-10-10 07:07:43.000   user1
6464    171477  item1 2012-10-10 07:06:58.000   user1
6467    171477  item1 2012-10-10 07:09:35.000   user1
6474    173026  item2 2012-10-10 10:20:21.000   user2
6478    173297  item3 2012-10-10 11:31:55.000   user3
6472    175445  item4 2012-10-10 07:18:17.000   user1
6460    175977  item5 2012-10-08 07:42:39.000   user4
6473    176253  item6 2012-10-10 10:18:21.000   user2
6471    176253  item6 2012-10-10 10:15:03.000   user2
6470    176253  item6 2012-10-10 10:14:34.000   user2

应:

代码语言:javascript
复制
id1     id2    name        time                user
6466    171477  item1 2012-10-10 07:08:48.000   user1
6474    173026  item2 2012-10-10 10:20:21.000   user2
6478    173297  item3 2012-10-10 11:31:55.000   user3
6472    175445  item4 2012-10-10 07:18:17.000   user1
6460    175977  item5 2012-10-08 07:42:39.000   user4
6473    176253  item6 2012-10-10 10:18:21.000   user2
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-11 17:21:42

代码语言:javascript
复制
;WITH tbl_online AS (
SELECT [id],[r_id]
 ,[cid]
 ,[name]
 ,[date]
 ,[user] ,ROW_NUMBER () OVER (
PARTITION BY [cid] ORDER BY [cid] ) AS Rnum
FROM [MyDatabase.table]
Where [date]>= dateadd(day,datediff(day,0,getdate()),-5)   )
SELECT *  FROM tbl_online WHERE Rnum !>1
ORDER BY [cid]
票数 1
EN

Stack Overflow用户

发布于 2012-10-11 17:21:07

您可能需要根据选择返回哪一行的方式来调整下面的ORDER BY部件。

代码语言:javascript
复制
WITH cteRowNum AS (
    SELECT id1, id2, name, time, user,
           ROW_NUMBER() OVER(PARTITION BY id2 ORDER BY time) AS RowNum
        FROM MyDatabase.Table
)
SELECT id1, id2, name, time, user
    FROM cteRowNum
    WHERE RowNum = 1;
票数 2
EN

Stack Overflow用户

发布于 2012-10-11 17:21:12

您似乎在寻找给定列表的最早记录(id2,名称),下面的查询将检索它们:

代码语言:javascript
复制
SELECT a.*
FROM 
    YourTable a
    JOIN 
    (
        SELECT MIN(id1) as id1, id2, name FROM YourTable GROUP BY id2, name
    ) as b
    ON a.id1 = b.id1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12844796

复制
相关文章

相似问题

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