【问题标题】:SQL returning full objects (*) from distincted columnsSQL 从不同的列返回完整对象 (*)
【发布时间】:2015-06-09 06:52:17
【问题描述】:

我正在寻找有关 Oracle DB 的 SQL 查询的解决方案,它从许多列返回 DISTINCT full 对象,例如:

SELECT DISTINCT mt.column1, mt.column2, mt.column3 FROM MyTable mt;

但我需要像 SELECT * FROM MyTable 这样的完整对象

有没有什么办法可以用普通的SQL语句来达到这样的效果?

提前致谢! :)

【问题讨论】:

  • 你的问题不清楚。请更新它,让我们知道您想要什么。
  • 您可以使用 "Group By mt.column1, mt.column2, mt.column3" 。如果我正确理解您的问题,这可能会有所帮助。
  • @NikhilBatra,Oracle 真的在 GROUP BY 方面作弊吗? (就像其他一些 dbms 产品一样......)
  • 据我所知,oracle 是遵守所有规则的最诚实和真诚的 DBMS,所以我不能称其为作弊者:P
  • 您是否要排除在表的任何列中具有 NULL 值的行?

标签: sql oracle distinct


【解决方案1】:

我认为您正在寻找这样的查询:

SELECT *
FROM (
    SELECT 
        *, ROW_NUMBER() OVER (PARTITION BY mt.column1, mt.column2, mt.column3 ORDER BY mt.column1, mt.column2, mt.column3) As Seq
    FROM 
        MyTable mt) AS DT
WHERE
    Seq = 1;

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-16
  • 2011-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多