【发布时间】:2016-01-05 16:33:09
【问题描述】:
我使用以下查询从表中获取不同的记录
SELECT distinct UFT
,ID
,NUM
,CONVERT(VARCHAR(19), UFT, 120) AS FTC
,CONVERT(VARCHAR(19), TIMESTAMP, 120) as TIMESTAMP
,CONVERT(VARCHAR(19), UIT, 120) AS UIT
,RANGE
,FORCE/1000/2 as FORCE
,CONVERT(VARCHAR(19), LFT, 120) as LFT
,CONVERT(VARCHAR(19), LIT, 120) as LIT
FROM TABLE1
where ID = 2
AND NUM = '144'
AND UFT > '2014-01-01 00:00:00.000'
and UFT <= '2015-01-01 00:00:00.000'
order by FTC, UIT desc
输出是
UFT ID NUM FTC TIMESTAMP UIT RANGE FORCE LFT LIT
2014-08-22 16:00:00.000 2 144 2014-08-22 16:00:00 2014-08-22 14:30:31 2014-08-22 11:40:54 5.00 0.792000000 2014-08-22 16:00:00 2014-08-22 12:40:54
2014-08-22 16:30:00.000 2 144 2014-08-22 16:30:00 2014-08-22 15:30:30 2014-08-22 12:40:48 5.00 0.836000000 2014-08-22 16:30:00 2014-08-22 13:40:48
2014-08-22 17:00:00.000 2 144 2014-08-22 17:00:00 2014-08-22 15:30:30 2014-08-22 12:40:48 5.10 0.880000000 2014-08-22 17:00:00 2014-08-22 13:40:48
2014-08-22 17:30:00.000 2 144 2014-08-22 17:30:00 2014-08-22 16:30:30 2014-08-22 13:40:24 5.20 0.932000000 2014-08-22 17:30:00 2014-08-22 14:40:24
2014-08-22 18:00:00.000 2 144 2014-08-22 18:00:00 2014-08-22 16:30:30 2014-08-22 13:40:24 5.30 0.984000000 2014-08-22 18:00:00 2014-08-22 14:40:24
2014-08-22 21:30:00.000 2 144 2014-08-22 21:30:00 2014-08-22 20:30:30 2014-08-22 17:40:52 6.40 1.656000000 2014-08-22 21:30:00 2014-08-22 18:40:52
2014-08-22 21:30:00.000 2 144 2014-08-22 21:30:00 2014-08-22 17:30:30 2014-08-22 17:07:40 6.60 1.860000000 2014-08-22 21:30:00 2014-08-22 18:07:40
2014-08-22 22:00:00.000 2 144 2014-08-22 22:00:00 2014-08-22 20:30:30 2014-08-22 17:40:52 6.40 1.704000000 2014-08-22 22:00:00 2014-08-22 18:40:52
2014-08-22 22:00:00.000 2 144 2014-08-22 22:00:00 2014-08-22 17:30:30 2014-08-22 17:07:40 6.70 1.904000000 2014-08-22 22:00:00 2014-08-22 18:07:40
2014-08-22 22:30:00.000 2 144 2014-08-22 22:30:00 2014-08-22 21:30:28 2014-08-22 18:40:49 6.50 1.764000000 2014-08-22 22:30:00 2014-08-22 19:40:49
尽管在 UFT 列上使用 distinct,但我仍然在输出中找到多条记录。这可能是什么原因,有没有办法改进查询
【问题讨论】:
-
distinct 关键字适用于 select 语句中的所有列,而不仅仅是 distinct 之后的第一列。您能否更清楚地格式化结果并举例说明您正在寻找的结果?
-
无法阅读。但是,
distinct适用于整个集合,而不仅仅是一列。 -
如果它适用于整个集合,为什么 UFT 库伦不明显。我不确定我是否理解。我想要的结果是 UFT 库中的不同条目以及要省略的其他多个条目行。有没有简单的方法来做到这一点?
-
@RVRLibra 这是因为整行不是重复的。它查看每一列。如果查看结果中的第 6 行和第 7 行,并非所有列中的所有值都相同。看第 5 列,TIMESTAMPS,第 6 行和第 7 行的值不一样。那么在该示例中,您希望显示哪一行,6 还是 7?
-
类似于this question,虽然我不太相信链接的问题足够笼统,可以被视为重复。由于我的单次投票就可以结束这个问题,我将把这个判断留给其他人。
标签: sql-server duplicates distinct