Sql 如何在不使用函数(min、max等)的情况下从表中选择不同的行?
最近我看到了很多关于这方面的问题,但我认为应该有比按一列分组并将所选表的所有其他字段设置为Min、Max、Average函数更简单的方法。例如,我有一个有20列的大表。我不认为将19列作为函数是正确的选择 我尝试了Distinct,但它也提供了重复的值。 此外,将select的每个字段都放在组中也不起作用,因为Oracle抱怨:Sql 如何在不使用函数(min、max等)的情况下从表中选择不同的行?,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,最近我看到了很多关于这方面的问题,但我认为应该有比按一列分组并将所选表的所有其他字段设置为Min、Max、Average函数更简单的方法。例如,我有一个有20列的大表。我不认为将19列作为函数是正确的选择 我尝试了Distinct,但它也提供了重复的值。 此外,将select的每个字段都放在组中也不起作用,因为Oracle抱怨: ORA-00932: inconsistent datatypes: expected - got CLOB 有什么想法吗?您可以使用行数功能选择不同的行: sele
ORA-00932: inconsistent datatypes: expected - got CLOB
有什么想法吗?您可以使用行数功能选择不同的行:
select t.*
from (select t.*,
row_number() over (partition by <columns that should be different>
order by NULL) as seqnum
from t
) t
where seqnum = 1;
哪些值以不同的方式显示重复项?只有特定的数据类型?GROUP_BY有一个特殊的含义,不打算以这种方式使用。你能提供更多关于你的目标的信息吗?标准过程是在子查询中使用分组结果集,这样就不必为了语法一致性而聚合所有其他列。我要选择所有具有一个不同值的不同行,例如CustomerNum,有些行具有相同的CustomerNum。列值为Int、Varchar、Date等。CustomerNum列具有数字类型非常感谢先生:但是我认为它们应该包含一些命令或类似的内容来执行此任务,因为这在日常工作中是非常必要的。