Sql 如何在选择包括序号列在内的所有列时使用DISTINCT used?
我的查询是为了在选择所有列时避免在特定列中重复。但DISTINCT不起作用,因为seq.number列也被选中。 有没有办法让查询正常工作 在下面的示例中,查询seq_num是唯一键 编辑:包括图片中的样本数据Sql 如何在选择包括序号列在内的所有列时使用DISTINCT used?,sql,oracle,Sql,Oracle,我的查询是为了在选择所有列时避免在特定列中重复。但DISTINCT不起作用,因为seq.number列也被选中。 有没有办法让查询正常工作 在下面的示例中,查询seq_num是唯一键 编辑:包括图片中的样本数据 select DISTINCT(name), seq_num from table_1;![enter image description here](https://i.stack.imgur.com/Y3NYn.jpg) 对于两列,此查询就足够了: SELECT name, min
select DISTINCT(name), seq_num from table_1;![enter image description here](https://i.stack.imgur.com/Y3NYn.jpg)
对于两列,此查询就足够了:
SELECT name, min(seq_num)
FROM table
GROUP BY name
有关更多列,请使用行数
分析函数
SELECT name, col1, col2, .... col500, seq_num
FROM (
SELECT t.*, row_number() over (partition by name order by seq_num ) As rn
FROM table t
)
WHERE rn = 1
上面的查询只选择一行具有给定名称且每个名称的seq_num值最小的行。您不能做您想做的事。请阅读有关子句和查询结果集的更多信息。您将了解,
distinct
不适合您的问题。如果您提供一些示例数据,说明您所拥有的以及查询显示的内容,我们将尽可能为您提供帮助。显示您拥有的数据示例以及您想要的内容我的否决票是因为您没有提供足够的信息来解决您的问题。具体来说,包括输入数据的样本,以及您希望输出的内容和原因。请在您可以发布文本时发送。显示具有代表性的示例数据、当前查询和输出以及所需的输入,所有内容均为格式化文本。但是你的问题没有真正的意义-如果seq_num
是唯一的,那么seq_num
就不能有重复的名称;如果您重复名称,并且只想显示其中的每个名称一次,那么您将如何决定为每个名称显示哪个seq_num
?非常感谢。这绝对有帮助!你好实际上,我想消除重复项,而我知道的现成选项是使用DISTINCT。感谢您澄清还有其他选择需要解决。