Related to your answer Columns in the SELECT not in the GROUP BY, I'd just like to add a comment.

    Requires Free Membership to View

We love feedback like this. Below is the comment submitted by Oracle developer Iudith Mentzel. Many thanks for the contribution.


If working with an Oracle database, then there exist several solutions using analytic functions, like this:

select foo,
       other1,
       other2
from (select qux.*,
             sum(bar)     over (partition by foo)                as sumbar,
             row_number() over (partition by foo order by rowid) as rno
      from qux
     )
where rno = 1

or

select foo,
       sum(bar) as sumbar,
       min(other1) KEEP (dense_rank first order by rowid) as other1,
       min(other2) KEEP (dense_rank first order by rowid) as other2
from qux
group
     by foo

I think the first one works for Oracle8i or higher, the second one for Oracle9iR2 or higher.

This was first published in May 2007

Join the conversationComment

Share
Comments

    Results

    Contribute to the conversation

    All fields are required. Comments will appear at the bottom of the article.