【发布时间】:2020-03-11 03:42:24
【问题描述】:
我有一个表,其中有超过 30 列需要查询,其中一列有重复条目。如何查询表并按一列区分而不列出要在选择中显示的每一列。
例如 -
Select *
from Event
where subject_ID = 49
and date between '01-NOV-2019' and '14-NOV-2019'
这会显示 100 行,但应该只有 50 行,并且 case_id 列是区分重复项的唯一列。我需要查看表中的所有列,但不希望出现重复的 case_id 行,并且真的不想列出选择中的所有列。
试过
select distinct case_id, *
from event
where subject_ID = 49
and date between '01-NOV-2019' and '14-NOV-2019'
没用。
我应该澄清一下,每隔一行都是重复的。每组数据有 2 行,case_id 是唯一区分重复项的数据。有没有办法说只显示奇数行?
【问题讨论】:
-
选择不同的 * 不起作用?
-
造成重复的原因是您的 *
-
用您正在使用的数据库标记您的问题。
-
这个问题有点道理。这听起来像是使用窗口函数对分区 case_id 中的记录进行排序的典型用法。然后从每个分区中取出顶部的一个。
标签: sql duplicates distinct