Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Re: Union Query Improvement
On Feb 14, 9:59 am, "Ray Bannon" <raymond.w.ban..._at_boeing.com> wrote:
> Howdy, I've got a query which runs forever and am wondering if there's a
> more efficient way to write it.
>
> Select id, plan_name from table/view1 where plan_name = 'A' and rownum = 1
> union
> Select id, plan_name from table/view1 where plan_name = 'B' and rownum = 1
> union
> Select id, plan_name from table/view1 where plan_name = 'C' and rownum = 1
> union.....etc
>
> There are about 100 plan names, and I want one ID/owner for each plan_name.
Maybe I am not reading the question correctly, but this seems to be
very easy to accomplish. You can speed it up a bit by changing UNION
to UNION ALL. Or, you can write the SQL statement so that it may be
executed efficiently. Example:
CREATE TABLE T3 (
ID NUMBER(10),
PLAN_NAME VARCHAR2(10));
Fill with a known sequence of numbers from 1 to 100:
INSERT INTO
T3
SELECT
ROWNUM,
TO_CHAR(ROWNUM)
FROM
DBA_OBJECTS
WHERE
ROWNUM<=100;
Fill in a second set of 100 numbers with somewhat random values:
INSERT INTO
T3
SELECT
TRUNC(ROWNUM*DBMS_RANDOM.VALUE(0,5)),
TO_CHAR(ROWNUM)
FROM
DBA_OBJECTS
WHERE
ROWNUM<=100;
Now, a simple GROUP BY:
SELECT
MAX(ID) ID,
PLAN_NAME
FROM
T3
GROUP BY
PLAN_NAME
ORDER BY
PLAN_NAME;
ID PLAN_NAME
========== ==========
2 1 10 10 385 100 41 11 12 12 18 13 21 14 17 15 58 16 51 17 23 18 19 19 5 2 83 20 27 21 22 22 73 23 71 24 49 25 49 26 124 27 113 28 29 29 6 3 30 30 40 31 32 32 33 33 149 34 168 35 177 36 37 37 39 38 39 39 16 4 168 40 57 41 209 42 104 43 123 44 57 45 69 46 116 47 48 48 56 49 7 5 77 50 172 51 212 52 53 53 84 54 232 55 254 56 275 57 107 58 181 59 22 6 151 60 287 61 172 62 287 63 98 64 289 65 238 66 67 67 145 68 178 69 10 7 147 70 204 71 321 72 95 73 211 74 147 75 196 76 163 77 78 78 276 79 35 8 250 80 278 81 244 82 261 83 102 84 219 85 86 86 407 87 88 88 112 89 9 9 259 90 222 91 92 92 357 93 94 94 95 95 96 96 350 97 268 98 490 99
Charles Hooper
PC Support Specialist
K&M Machine-Fabricating, Inc.
Received on Wed Feb 14 2007 - 09:45:35 CST
![]() |
![]() |