Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> RE: SQL help needed

RE: SQL help needed

From: David Boyd <davidb158_at_hotmail.com>
Date: Mon, 10 Jul 2006 13:33:27 -0400
Message-ID: <BAY101-F133FF845AD030B5119AA76EF6B0@phx.gbl>


Hi Mark,

Excellent. That's the answer I wanted. Thank you so much.

Do you know if there is any way that I can use an alias for sum clause? Otherwise the query is long as following:

SELECT name, SUM((CASE WHEN GROUPS LIKE 'GROUP A%' THEN 1   WHEN GROUPS LIKE 'GROUP B%' THEN 2
  WHEN GROUPS LIKE 'GROUP dev%' THEN 4 END)) FROM test GROUP BY name
HAVING SUM((CASE WHEN GROUPS LIKE 'GROUP A%' THEN 1

	WHEN GROUPS LIKE  'GROUP B%' THEN 2
	WHEN GROUPS LIKE 'GROUP dev%' THEN 4 END))
= (SELECT SUM((CASE WHEN GROUPS LIKE 'GROUP A%' THEN 1
	WHEN GROUPS LIKE  'GROUP B%' THEN 2
	WHEN GROUPS LIKE 'GROUP dev%' THEN 4 END))
	FROM test WHERE name ='Marry');

Dave

>From: "Mark W. Farnham" <mwf_at_rsiz.com>
>To: <davidb158_at_hotmail.com>, <oracle-l_at_freelists.org>
>Subject: RE: SQL help needed
>Date: Mon, 10 Jul 2006 12:09:31 -0400
>
>name group group_value
>M A 1
>M B 2
>M dev 4
>D etc.......
>
>
>select name, sum(group_value) from test
> group by name
> having group_value = (select sum(group_value) from test where name =
>'M'));
>
>should work (off of the top of my head and my typing is not tested.)
>
>Notice those group_values are disjoint powers of two. You could craft a
>decode on your existing data to do the same thing. If you don't enforce
>uniqueness on name-group tuples this could generate false answers, and
>you'd
>have to make the statement more complicated.
>
>-----Original Message-----
>From: oracle-l-bounce_at_freelists.org
>[mailto:oracle-l-bounce_at_freelists.org]On
>Behalf Of David Boyd
>Sent: Monday, July 10, 2006 11:18 AM
>To: oracle-l_at_freelists.org
>Subject: SQL help needed
>
>Hi List,
>
>I was wondering if a SQL statement is possible for following query.
>
>The name of the table is test. It has following data:
>
>name group
>Marry group A 1-1
>Marry group B 1-2
>Marry group dev 1-1
>Ann group A 2-3
>Dave group A 2-3
>Dave group B 4-1
>Dave group dev 3-2
>
>I want to find out the names that are in the exact same groups as 'Marry'.
>The number in the group has to be ignored. For the above data, the query
>should return 'Dave' only since both Marry and Dave are in group A, group
>B,
>and group dev.
>
>Thanks for any input advance.
>
>Dave
>
>_________________________________________________________________
>Express yourself instantly with MSN Messenger! Download today - it's FREE!
>http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
>
>--
>http://www.freelists.org/webpage/oracle-l
>
>



Is your PC infected? Get a FREE online computer virus scan from McAfeeŽ Security. http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
--
http://www.freelists.org/webpage/oracle-l
Received on Mon Jul 10 2006 - 12:33:27 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US