Select value of most occurances - analytical function?!

Hi ...
I've get stuck with a "little" problem.
I try to provide some testing code for this:
CREATE TABLE a1 (
     id NUMBER(8),
     val NUMBER(6),
     title VARCHAR2(16),
     CONSTRAINT test_pk PRIMARY KEY(id)
INERT INTO a1 (id, val, title) VALUES (1,12,'c');
INERT INTO a1 (id, val, title) VALUES (2,13,'b');
INERT INTO a1 (id, val, title) VALUES (3,13,'a');
INERT INTO a1 (id, val, title) VALUES (4,13,'a');
INERT INTO a1 (id, val, title) VALUES (5,42,'a');
INERT INTO a1 (id, val, title) VALUES (6,42,'b');
INERT INTO a1 (id, val, title) VALUES (7,42,'b');Actually the table is much bigger ;) But this should be ok for this question. It already exist a query like:
SELECT
     count(*) -- just an example
FROM
     a1
GROUP BY
     val
-- should return 1,3,3 (for the groups val=12, val=13,val=42)Now it is nessecary to select a title for each group (specified by group by). And there the title which occurs the most in this group should be selected. For this example this are 'c' for the group val=12 .. 'a' for the group val=13 and finally 'b' for the group val=42.
I tried to use some anayltical function, but I#m not able to get this to work - may be because I never used analytical functions before. If I try something I mostly get an error: Keyword FROM not at expected position (ORA-00923). I searched for some tutorial/howto documentations where my problem is handled but without success. So I guess the syntax and the way to understand analytical functions is not as easy as it semms to be ...
title OVER ( ORDER BY count(*) ROWS | RANGE BETWEEN 1 AND 1 ) <-- that would by logical for my brain, but not for oracles ;-)
Can somebody help?
Thanks!

Hi folks,
thanks for the variuos answers! Weekend is over, so we should work on ...
I tried some examples you gave me. And I decide to provide more detailes information! At first, if the amount of 'a' and 'b' is equal it doesn't matter which one will be returned (so it can be undefined, if that makes thing easier). I will now paste the original query I work with and I add some comments for you - so you can find the lines which should be changed to return the most occurances-value.
If you think it makes sense to Provide some create-table ddl an (maybe as csv file) some data, tell me how i can do that (I think its not an option to post ~ Mio rows as Inserts here).
The select-query I want to manipulate - this is no more related to our test-table 'a1' !! For Example let us look on the rows where 'A' and 'drm_' is selected - starts at line 7!
SELECT
  box_id,
  schedule_id,
  fixsecs_down(MIN(acqtime),600),
  COUNT(*), -- each row in rfm_meas_hr represents one frame of measuremnt-data, so this represents the number of frames received in this block
  -- instead of 'A' the most occurance of the col 'rpro' should be selected here
  'A',
  -- like above, but from the column 'rdmo'
  'drm_',
  -- below this some other cols are calculated/selected, not important here
  FLOOR(MEDIAN(rfre)),
  ROUND(AVG(rdbv),2),
  ROUND(SUM(POWER(rdbv,2)),2),
  ROUND(MAX(rdbv),2),
  ROUND(MIN(rdbv),2),
  ROUND(SUM(rsnr)/SUM(nframes),2),
  ROUND(SUM(POWER(rsnr,2)),2),
  ROUND(MAX(rsnr),2),
  ROUND(MIN(rsnr),2),
  ROUND( AVG(rsta_sync),2), -- rsta_sync
  ROUND(SUM(POWER(rsta_sync,2)),2), -- rsta_sync_s
  ROUND( MIN(rsta_sync),2), -- rsta_sync_min
  ROUND( MAX(rsta_sync),2), -- rsta_sync_max
  ROUND( AVG(rsta_fac),2), -- rsta_facc
  ROUND(SUM(POWER(rsta_fac,2)),2), -- rsta_fac_s
  ROUND( MIN(rsta_fac),2), -- rsta_fac_min
  ROUND( MAX(rsta_fac),2), -- rsta_fac_max
  ROUND( AVG(rsta_sdc),2), -- rsta_sdc
  ROUND(SUM(POWER(rsta_sdc,2)),2), -- rsta_sdc_s
  ROUND( MIN(rsta_sdc),2), -- rsta_sdc_min
  ROUND( MAX(rsta_sdc),2), -- rsta_sdc_max
  ROUND( AVG(rsta_audio),2), -- rsta_audio
  ROUND(SUM(POWER(rsta_audio,2)),2), -- rsta_audio_s
  ROUND( MIN(rsta_audio),2), -- rsta_audio_min
  ROUND( MAX(rsta_audio),2), -- rsta_audio_max
  MIN(rser), TODO:  most occurances
  MIN(rtty_stream0), -- TODO:  most occurances
  MIN(rtty_stream1), -- TODO:  most occurances
  MIN(rtty_stream2), -- TODO:  most occurances
  MIN(rtty_stream3), -- TODO:  most occurances
  ROUND(AVG(NVL(rafs_error/nullif(rafs_au,0),1))*SUM(rafs_au)/NULLIF(SUM(rafs_au),0),2), -- rafs
  ROUND( SUM( POWER(  NVL(rafs_error/nullif(rafs_au,0),1),2))*SUM(rafs_au)/NULLIF(SUM(rafs_au),0) ,2), -- rafs_s
  ROUND(MIN(rafs_error/ NULLIF(rafs_au,0)),2), -- rafs_min
  ROUND(MAX(NVL(rafs_error/NULLIF(rafs_au,0),1) )*SUM(rafs_au)/NULLIF(SUM(rafs_au),0),2), -- rafs_max
  SUM(robm_A),
  SUM(robm_B),
  SUM(robm_C),
  SUM(robm_D),
  SUM(robm_E),
  ROUND(SUM(rwmf) / SUM(nframes),2), -- rwmf
  ROUND(SUM(POWER(rwmf,2)),2), -- rwmf_s
  ROUND(MIN(rwmf),2), -- rwmf_min
  ROUND(MAX(rwmf),2), -- rwmf_max
  ROUND(SUM(rwmm) / SUM(nframes),2), -- rwmm
  ROUND(SUM(POWER(rwmm,2)),2), -- rwmm_s
  ROUND(MIN(rwmm),2), -- rwmm_min
  ROUND(MAX(rwmm),2), -- rwmm_max
  ROUND(SUM(rmer) / SUM(nframes),2), -- rmer
  ROUND(SUM(POWER(rmer,2)),2), -- rmer_s
  ROUND(MIN(rmer),2), -- rmer_min
  ROUND(MAX(rmer),2), -- rmer_max
  ROUND(SUM(RBP0_ERRS+ RBP1_ERRS+ RBP2_ERRS+ RBP3_ERRS) / NULLIF(SUM(RBP0_BITS+ RBP1_BITS+ RBP2_BITS+ RBP3_BITS),0) ,10), -- ber
  ROUND(SUM(POWER( (RBP0_ERRS+ RBP1_ERRS+ RBP2_ERRS+ RBP3_ERRS) / NULLIF((RBP0_BITS+ RBP1_BITS+ RBP2_BITS+ RBP3_BITS),0) ,2)),10), -- ber_s
  ROUND(MIN(RBP0_ERRS+ RBP1_ERRS+ RBP2_ERRS+ RBP3_ERRS) / NULLIF(MIN(RBP0_BITS+ RBP1_BITS+ RBP2_BITS+ RBP3_BITS),0) ,10), -- ber_min
  ROUND(MAX(RBP0_ERRS+ RBP1_ERRS+ RBP2_ERRS+ RBP3_ERRS) / NULLIF(MAX(RBP0_BITS+ RBP1_BITS+ RBP2_BITS+ RBP3_BITS),0) ,10), -- ber_max
  ROUND(AVG(rdop),2), -- rdop
  ROUND(SUM(POWER(rdop,2) ),2), -- rdop_s
  ROUND(MIN(rdop),2), -- rdop_min
  ROUND(MAX(rdop),2), -- rdop_max
  ROUND(AVG(rdel90),2), -- rdel90
  ROUND(SUM(POWER(rdel90,2) ),2), -- rdel90_s
  ROUND(MIN(rdel90),2), -- rdel90_min
  ROUND(MAX(rdel90),2), -- rdel90_max
  ROUND(AVG(rdel95),2), -- rdel95
  ROUND(AVG(rdel99),2), -- rdel99
  null AS reslevel
FROM
-- select the data where this should be calculated
    SELECT
    FROM
      rfm_meas_hr
    WHERE
      acqtime < fixsecs_down(to_timestamp('07-01-2011 14:00:00,00','dd-mm-yyyy hh24:mi:ss,ff'),600)
      AND (reslevel IS NULL OR reslevel=10)
-- group the selected data and executes the calculation given by SELECT-statement
GROUP BY
  -- group the data into 10min packages, indicated by its timestamp
  to_char( EXTRACT(MONTH FROM acqtime)*100000 + EXTRACT(DAY FROM acqtime)*1000 + EXTRACT(HOUR FROM acqtime)*10 + floor(EXTRACT(MINUTE FROM acqtime)/10) ),
  schedule_id,
  box_id
HAVING
  SUM(nframes)>15
;I chould say: I can add indexes if nessecary! At the moment there is one on (acqtime, reslevel) as this improves the access speed. But the query above, executed on typical data already takes 5-7 sec.
Please let me know if you need any more information.
Regards!

Similar Messages

  • Passing multiple select value from BI publisher to PL/SQL functions

    Hi - I have designed a report which pass parameters (Multi select) into a function to get the output result. When a single parameter value is passed to the function, report is being displayed. When multi select value is passed to the function it is returning the error `wrong number or types of arguments in call to 'F_PROCESS_WAVE_DATA'. When i checked the parameters passed to the function, i can see each multi select value is treated as different value and is assigned to different parameter in the function.
    Any help on passing the multi select parameter into function will be helpful.
    Regards,
    Vikram.

    All - Issue was resolved. I followed the following steps to resolve the issue
    1. Create a PL/SQL table type variable as VARCHAR2 in the database - Say as Larray
    2. Create PL/SQL type record and table for the record in database. Lrec, Ltable
    3. In BI report pass multiple select LOV variable as Larray(variable).
    4. In DB function, Parameter should be defined as LARRAY.
    5. Return PL/SQL table type Ltable from the function.
    Regards,
    Vikram.

  • Retrieve select value from picklist

    I have picklist which has values 1,2,3
    To retrive Picklist value i wrote FieldValue('<Picklistname>'> but nothing happend
    I need to retrieve the selected value and add to Today() Function.
    Edited by: user11170982 on May 28, 2009 3:06 AM

    The info you have been given is correct: Today&#40;&#41;+&#91;&lt;CustomPicklist&gt;&#93;.
    I think the key is to be sure you check Post Default. This will populate the value after the user picks the correct number of days in the picklist and then saves the record. If the user doesn't pick a day in the picklist, it will resolve to Today&#40;&#41;.
    Good Luck.

  • Analytic function to retrieve a value one year ago

    Hello,
    I'm trying to find an analytic function to get a value on another row by looking on a date with Oracle 11gR2.
    I have a table with a date_id (truncated date), a flag and a measure. For each date, I have at least one row (sometimes 2), so it is gapless.
    I would like to find analytic functions to show for each date :
    sum of the measure for that date
    sum of the measure one week ago
    sum of the measure one year ago
    As it is gapless I managed to do it the week doing a group by date in a subquery and using a LAG with offset set to 7 on top of it (see below).
    However I'm struggling on how to do that for the data one year ago as we might have leap years. I cannot simply set the offset to 365.
    Is it possible to do it with a RANGE BETWEEN window clause? I can't manage to have it working with dates.
    Week :LAG with offset 7
    SQL Fiddle
    or
    create table daily_counts
      date_id date,
      internal_flag number,
      measure1 number
    insert into daily_counts values ('01-Jan-2013', 0, 8014);
    insert into daily_counts values ('01-Jan-2013', 1, 2);
    insert into daily_counts values ('02-Jan-2013', 0, 1300);
    insert into daily_counts values ('02-Jan-2013', 1, 37);
    insert into daily_counts values ('03-Jan-2013', 0, 19);
    insert into daily_counts values ('03-Jan-2013', 1, 14);
    insert into daily_counts values ('04-Jan-2013', 0, 3);
    insert into daily_counts values ('05-Jan-2013', 0, 0);
    insert into daily_counts values ('05-Jan-2013', 1, 1);
    insert into daily_counts values ('06-Jan-2013', 0, 0);
    insert into daily_counts values ('07-Jan-2013', 1, 3);
    insert into daily_counts values ('08-Jan-2013', 0, 33);
    insert into daily_counts values ('08-Jan-2013', 1, 9);
    commit;
    select
        date_id,
        total1,
        LAG(total1, 7) OVER(ORDER BY date_id) total_one_week_ago
      from
          select
            date_id,
            SUM(measure1) total1
          from daily_counts
          group by date_id
    order by 1;
    Year : no idea?
    I can't give a gapless example, would be too long but if there is a solution with the date directly :
    SQL Fiddle
    or add this to the schema above :
    insert into daily_counts values ('07-Jan-2012', 0, 11);
    insert into daily_counts values ('07-Jan-2012', 1, 1);
    insert into daily_counts values ('08-Jan-2012', 1, 4);
    Thank you for your help.
    Floyd

    Hi,
    Sorry, I;m not sure I understand the problem.
    If you are certain that there is at least 1 row for every day, then you can be sure that the GROUP BY will produce exactly 1 row per day, and you can use LAG (total1, 365) just like you already use LAG (total1, 7).
    Are you concerned about leap years?  That is, when the day is March 1, 2016, do you want the total_one_year_ago column to reflect March 1, 2015, which was 366 days earlier?  If that case, use
    date_id - ADD_MONTHS (date_id, -12)
    instead of  365.
    LAG only works with an exact number, but you can use RANGE BETWEEN with other analytic functions, such as MIN or SUM:
    SELECT DISTINCT
              date_id
    ,         SUM (measure1) OVER (PARTITION BY date_id)    AS total1
    ,         SUM (measure1) OVER ( ORDER BY      date_id
                                    RANGE BETWEEN 7 PRECEDING
                                          AND     7 PRECEDING
                                  )                       AS total1_one_week_ago
    ,         SUM (measure1) OVER ( ORDER BY      date_id
                                    RANGE BETWEEN 365 PRECEDING
                                          AND     365 PRECEDING
                                  )                       AS total1_one_year_ago
    FROM      daily_counts
    ORDER BY  date_id
    Again, use date arithmetic instead of the hard-coded 365, if that's an issue.
    As Hoek said, it really helps to post the exact results you want from the given sample data.  You're miles ahead of the people who don't even post the sample data, though.
    You're right not to post hundreds of INSERT statements to get a year's data.  Here's one way to generate sample data for lots of rows at the same time:
    -- Put a 0 into the table for every day in 2012
    INSERT INTO daily_counts (date_id, measure1)
    SELECT  DATE '2011-12-31' + LEVEL
    ,       0
    FROM    dual
    CONNECT BY LEVEL <= 366

  • Analytic function - two answers in one single select

    create table atest(eid varchar2(10),ukey varchar2(10),tname varchar2(40));
    insert into atest values ('eid1','ukey1','tname1');
    insert into atest values ('eid2','ukey1','tname2');
    insert into atest values ('eid3','ukey2','tname3');
    insert into atest values ('eid4','ukey2','tname3');
    insert into atest values ('eid5','ukey3','tname4');
    commit;I need one single sql, from which I want to find out 2 things
    1. find out those ukey values for which we have multiple eids (ukey1, ukey2 in our example)
    2. next, once we identify those ukeys with multiple eids, out of those, find those ukeys which have non unique tnames (in our example ukey1)
    I would like to do it using analytic functions, so far tried the following
    select eid, ukey,
    (case when count(distinct a.eid) over (partition by (a.ukey)) >  1 then
    -- do something here, above will give ukey1, ukey2, but how to identify those ukeys with non unique tnames ?
    else
    end) tsource
    from atest a;

    user650888 wrote:
    can the same be achieved with analytics ? Yes, but why? Anyway:
    select  ukey
      from  (
             select  ukey,
                     count(distinct eid) over(partition by ukey) eid_cnt,
                     count(distinct tname) over(partition by ukey) tname_cnt,
                     row_number() over(partition by ukey order by 1) rn
               from  atest
      where eid_cnt > 1
        and tname_cnt > 1
        and rn = 1
    UKEY
    ukey1
    SQL> SY.

  • Using analytical function - value with highest count

    Hi
    i have this table below
    CREATE TABLE table1
    ( cust_name VARCHAR2 (10)
    , txn_id NUMBER
    , txn_date DATE
    , country VARCHAR2 (10)
    , flag number
    , CONSTRAINT key1 UNIQUE (cust_name, txn_id)
    INSERT INTO table1 (cust_name, txn_id, txn_date,country,flag) VALUES ('Peter', 9870,TO_DATE ('15-Jan-2011', 'DD-Mon-YYYY'), 'Iran', 1);
    INSERT INTO table1 (cust_name, txn_id, txn_date,country,flag) VALUES ('Peter', 9871,TO_DATE ('16-Jan-2011', 'DD-Mon-YYYY'), 'China', 1);
    INSERT INTO table1 (cust_name, txn_id, txn_date,country,flag) VALUES ('Peter', 9872,TO_DATE ('17-Jan-2011', 'DD-Mon-YYYY'), 'China', 1);
    INSERT INTO table1 (cust_name, txn_id, txn_date,country,flag) VALUES ('Peter', 9873,TO_DATE ('18-Jan-2011', 'DD-Mon-YYYY'), 'Japan', 1);
    INSERT INTO table1 (cust_name, txn_id, txn_date,country,flag) VALUES ('Peter', 9874,TO_DATE ('19-Jan-2011', 'DD-Mon-YYYY'), 'Japan', 1);
    INSERT INTO table1 (cust_name, txn_id, txn_date,country,flag) VALUES ('Peter', 9875,TO_DATE ('20-Jan-2011', 'DD-Mon-YYYY'), 'Russia', 1);
    INSERT INTO table1 (cust_name, txn_id, txn_date,country,flag) VALUES ('Peter', 9877,TO_DATE ('22-Jan-2011', 'DD-Mon-YYYY'), 'China', 0);
    INSERT INTO table1 (cust_name, txn_id, txn_date,country,flag) VALUES ('Peter', 9878,TO_DATE ('26-Jan-2011', 'DD-Mon-YYYY'), 'Korea', 0);
    INSERT INTO table1 (cust_name, txn_id, txn_date,country,flag) VALUES ('Peter', 9811,TO_DATE ('17-Jan-2011', 'DD-Mon-YYYY'), 'China', 0);
    INSERT INTO table1 (cust_name, txn_id, txn_date,country,flag) VALUES ('Peter', 9854,TO_DATE ('13-Jan-2011', 'DD-Mon-YYYY'), 'Taiwan', 0);
    The requirement is to create an additional column in the resultset with country name where the customer has done the maximum number of transactions
    (with transaction flag 1). In case we have two or more countries tied with the same count, then we need to select the country (among the tied ones)
    where the customer has done the last transaction (with transaction flag 1)
    e.g. The count is 2 for both 'China' and 'Japan' for transaction flag 1 ,and the latest transaction is for 'Japan'. So the new column should contain 'Japan'
    CUST_NAME TXN_ID TXN_DATE COUNTRY FLAG country_1
    Peter 9811 17-JAN-11 China 0 Japan
    Peter 9854 13-JAN-11 Taiwan 0 Japan
    Peter 9870 15-JAN-11 Iran 1 Japan
    Peter 9871 16-JAN-11 China 1 Japan
    Peter 9872 17-JAN-11 China 1 Japan
    Peter 9873 18-JAN-11 Japan 1 Japan
    Peter 9874 19-JAN-11 Japan 1 Japan
    Peter 9875 20-JAN-11 Russia 1 Japan
    Peter 9877 22-JAN-11 China 0 Japan
    Peter 9878 26-JAN-11 Korea 0 Japan
    Please let me know how to accomplish this using analytical functions
    Thanks
    -Learnsequel

    Does this work (not spent much time checking it)?
    WITH ana AS (
    SELECT cust_name, txn_id, txn_date, country, flag,
            Sum (flag)
                OVER (PARTITION BY cust_name, country)      n_trx,
            Max (CASE WHEN flag = 1 THEN txn_date END)
                OVER (PARTITION BY cust_name, country)      l_trx
      FROM cnt_trx
    SELECT cust_name, txn_id, txn_date, country, flag,
            First_Value (country) OVER (PARTITION BY cust_name ORDER BY n_trx DESC, l_trx DESC) top_cnt
      FROM ana
    CUST_NAME      TXN_ID TXN_DATE  COUNTRY          FLAG TOP_CNT
    Fred             9875 20-JAN-11 Russia              1 Russia
    Fred             9874 19-JAN-11 Japan               1 Russia
    Peter            9873 18-JAN-11 Japan               1 Japan
    Peter            9874 19-JAN-11 Japan               1 Japan
    Peter            9872 17-JAN-11 China               1 Japan
    Peter            9871 16-JAN-11 China               1 Japan
    Peter            9811 17-JAN-11 China               0 Japan
    Peter            9877 22-JAN-11 China               0 Japan
    Peter            9875 20-JAN-11 Russia              1 Japan
    Peter            9870 15-JAN-11 Iran                1 Japan
    Peter            9878 26-JAN-11 Korea               0 Japan
    Peter            9854 13-JAN-11 Taiwan              0 Japan
    12 rows selected.

  • Analytic Function - Return 2 values

    I am sure I need to use an analytic function to do this, I just cannot seem to get it right. I appreciate the help.
    Table and insert statements:
    create table TST_CK
    DOC_ID NUMBER(6)      not null,
    ROW_SEQ_NBR NUMBER(6) not null,
    IND_VALUE VARCHAR2(2) null
    INSERT INTO TST_CK VALUES ('1','6',NULL);
    INSERT INTO TST_CK VALUES ('1','5',NULL);
    INSERT INTO TST_CK VALUES ('1','4','T');
    INSERT INTO TST_CK VALUES ('1','3','R');
    INSERT INTO TST_CK VALUES ('1','9',NULL);
    INSERT INTO TST_CK VALUES ('1','10',NULL);
    INSERT INTO TST_CK VALUES ('1','7','T');
    INSERT INTO TST_CK VALUES ('1','8','R');
    INSERT INTO TST_CK VALUES ('2','1',NULL);
    INSERT INTO TST_CK VALUES ('2','2',NULL);
    INSERT INTO TST_CK VALUES ('2','3','T');
    INSERT INTO TST_CK VALUES ('2','4','R');
    INSERT INTO TST_CK VALUES ('2','5',NULL);
    INSERT INTO TST_CK VALUES ('2','6',NULL);
    INSERT INTO TST_CK VALUES ('2','7','T');
    INSERT INTO TST_CK VALUES ('2','8','R');
    INSERT INTO TST_CK VALUES ('4','1',NULL);
    INSERT INTO TST_CK VALUES ('4','2',NULL);
    INSERT INTO TST_CK VALUES ('4','3','X1');
    INSERT INTO TST_CK VALUES ('4','4',NULL);
    INSERT INTO TST_CK VALUES ('4','5',NULL);
    INSERT INTO TST_CK VALUES ('4','6',NULL);
    INSERT INTO TST_CK VALUES ('4','7','T');
    INSERT INTO TST_CK VALUES ('4','8','R');
    INSERT INTO TST_CK VALUES ('4','9',NULL);
    INSERT INTO TST_CK VALUES ('4','10',NULL);
    INSERT INTO TST_CK VALUES ('4','11',NULL);
    INSERT INTO TST_CK VALUES ('4','12',NULL);
    INSERT INTO TST_CK VALUES ('4','13','T');
    INSERT INTO TST_CK VALUES ('4','14','R');
    INSERT INTO TST_CK VALUES ('4','15',NULL);
    INSERT INTO TST_CK VALUES ('4','16',NULL);
    COMMIT;Here is what I have tried that gets me close:
    SELECT MAX (TST_CK.DOC_ID), MAX (TST_CK.ROW_SEQ_NBR), TST_CK.IND_VALUE
      FROM ASAP.TST_CK TST_CK
    WHERE (TST_CK.IND_VALUE IS NOT NULL)
    GROUP BY TST_CK.IND_VALUE
    ORDER BY 2 ASCHere is my desired result:
    CV_1      CV_2
    T           ROr even better result would be:
    concat(CV_1,CV_2)With result:
    T,RThanks for looking
    G

    Hi,
    I am sure I need to use an analytic function to do this, I just cannot seem to get it right. I appreciate the help.
    Table and insert statements: ...Thanks for posting the CREATE TABLE and INSERT statements.
    Don't forget to explain how you get the results you want from that sample data.
    GMoney wrote:
    create table TST_CK
    DOC_ID NUMBER(6)      not null,
    ROW_SEQ_NBR NUMBER(6) not null,
    IND_VALUE VARCHAR2(2) null
    INSERT INTO TST_CK VALUES ('1','6',NULL);
    If doc_id and row_seq_nbr are NUMBERs, why are you inserting VARCHAR2 values, such as '1' and '6' (in single-quotes)?
    Here is my desired result:
    CV_1      CV_2
    T           ROr even better result would be:
    concat(CV_1,CV_2)With result:
    T,R
    The results from the query you posted are:
    MAX(TST_CK.DOC_ID) MAX(TST_CK.ROW_SEQ_NBR) IN
                     4                       3 X1
                     4                      13 T
                     4                      14 RWhat do the desired results represent?
    Why do your desired results include 'R' and 'T', but not 'X1'? Why do you want
    'T,R'     and not
    'X1,T,R'     or
    'X1,T'     or
    'T,X1'     or something else?
    Whatever your reasons are, there's a good chance you'll want to use String Aggregation . Your Oracle version is always important, but it's especially important in string aggregation problems, because some helpful new functions have beeen added in recent versions. Always say which version of Oracle (e.g., 11.2.0.3.0) you're using.

  • Analytic Functions - Need resultset only in one select

    Hello Experts,
    Problem Definition: Using Analytic Function, get Total sales for the Product P1 and Customer C1 [Total sales for the customer itself] in one line. I want to restrict the ResultSet of the query to Product P1, please look at the data below, queries and problems..
    Data
    Customer Product Qtr Sales
    C1 P1 19991 100.00
    C1 P1 19992 125.00
    C1 P1 19993 175.00
    C1 P1 19994 300.00
    C1 P2 19991 100.00
    C1 P2 19992 125.00
    C1 P2 19993 175.00
    C1 P2 19994 300.00
    C2 P1 19991 100.00
    C2 P1 19992 125.00
    C2 P1 19993 175.00
    C2 P1 19994 300.00
    Problem, I want to display....
    Customer Product ProdSales CustSales
    C1 P1 700 1400
    But Without using outer query, i.e. please look below for the query that returns this reult with two select, I want this result in one query only..
    Select * From ----*** want to avoid this... ***----
    (Select Customer,Product,
    Sum(Sales) ProdSales,
    Sum(Sum(Sales)) Over(Partition By Customer) CustSales
    From t1
    Where customer='C1')
    Where
    Product='P1' ;
    Also, I want to avoid Hard coding of P1 in the select clause....
    I mean, I can do it in one shot/select, but look at the query below, it uses P1 in the select clause, which is No No!! P1 is allowed only in Where or Having ..
    Select Customer,Decode(Product, 'P1','P1','P1') Product,
    Decode(Product,'P1',Sales,0) ProdSales,
    Sum(Sum(Sales)) Over (Partition By Customer ) CustSales
    From t1
    Where customer='C1' ;
    This will get me what I want, but as I said earlier, I want to avoid using P1 in the
    Select clause..
    Goal is to Avoid using
    1-> Two Select/Outer Query/In Line Views
    2-> Product 'P1' in the Select clause...No hard coded product name in the select clause and group by clause..
    Thanks
    -Dhaval

    Select * From ----*** want to avoid this... ***----
    (Select Customer,Product,
    Sum(Sales) ProdSales,
    Sum(Sum(Sales)) Over(Partition By Customer)
    CustSales
    From t1
    Where customer='C1')
    Where
    Product='P1' ;
    Goal is to Avoid using
    1-> Two Select/Outer Query/In Line ViewsWhy?

  • OLAP Expression Analytical Functions and NA Values

    Hello,
    I am trying to use the SUM and MAX functions over a hierarchy where there are potentially NA values. I believe in OLAP DML, the natural behavior is to skip these values. Can a skip be accomplished with either the SUM or MAX OLAP Expression Syntax functions?
    Cheers!

    Pre-requisites:
    ===============
    Time dimension with level=DAY.... i have restricted data to 1 month approx.. 20100101 to 20100201 (32 days).
    Measure of interest - a (say)
    Time Dimension attribute which indicates WEEKDAY.... if you have END_DATE attribute with date datatype so we can extract the DAY (MON/TUE/WED/...) from it and decipher wkday/wkend status for DAY.
    Sort time as per END_DATE ..
    Take care of other dimensions during testing... restrict all other dimensions of cube to single value. Final formula would be independent of other dimensions but this helps development/testing.
    Step 1:
    ======
    "Firm up the required design in olap dml
    "rpr down time
    " w 10 heading 't long' time_long_description
    " w 10 heading 't end date' time_end_date
    " w 20 heading 'Day Type' convert(time_end_date text 'DY')
    " a
    NOTE: version 1 of moving total
    " heading 'moving minus 2 all' movingtotal(a, -2, 0, 1, time status)
    " w 20 heading 'Day Type' convert(time_end_date text 'DY')
    " heading 'a wkday' if convert(time_end_date text 'DY') ne 'SAT' and convert(time_end_date text 'DY') ne 'SUN' then a else na
    NOTE: version 2 of moving total
    " heading 'moving minus 2 wkday' movingtotal(a, -2, 0, 1, time convert(time_end_date text 'DY') ne 'SAT' and convert(time_end_date text 'DY') ne 'SUN')
    " w 20 heading 'Day Type' convert(time_end_date text 'DY')
    " heading 'a wkday non-na' if convert(time_end_date text 'DY') ne 'SAT' and convert(time_end_date text 'DY') ne 'SUN' and a ne na then a else na
    NOTE: version 3 of moving total
    " heading 'moving minus 2 wkday non-na' movingtotal(a, -2, 0, 1, time convert(time_end_date text 'DY') ne 'SAT' and convert(time_end_date text 'DY') ne 'SUN' and a ne na)
    OLAP DML Command:
    rpr down time w 10 heading 't long' time_long_description w 10 heading 't end date' time_end_date w 20 heading 'Day Type' convert(time_end_date text 'DY') a heading 'moving minus 2 all' movingtotal(a, -2, 0, 1, time status) w 20 heading 'Day Type' convert(time_end_date text 'DY') heading 'a wkday' if convert(time_end_date text 'DY') ne 'SAT' and convert(time_end_date text 'DY') ne 'SUN' then a else na heading 'moving minus 2 wkday' movingtotal(a, -2, 0, 1, time convert(time_end_date text 'DY') ne 'SAT' and convert(time_end_date text 'DY') ne 'SUN') w 20 heading 'Day Type' convert(time_end_date text 'DY') heading 'a wkday non-na' if convert(time_end_date text 'DY') ne 'SAT' and convert(time_end_date text 'DY') ne 'SUN' and a ne na then a else na heading 'moving minus 2 wkday non-na' movingtotal(a, -2, 0, 1, time convert(time_end_date text 'DY') ne 'SAT' and convert(time_end_date text 'DY') ne 'SUN' and a ne na)
    Step 2:
    ======
    "Define additional measure to contain the required/desired formula implementing the business requirements (version 3 above)
    " create formula AF1 which points to last column... i.e. OLAP_DML_EXPRESSION
    dfn af1 formula movingtotal(a, -2, 0, 1, time convert(time_end_date text 'DY') ne 'SAT' and convert(time_end_date text 'DY') ne 'SUN' and a ne na)
    "NOTE: Do this via AWM using calculated member with template type = OLAP_DML_EXPRESSION so that the cube view for cube contains a column for measure AF1
    OLAP DML Command:
    rpr down time w 10 heading 't long' time_long_description w 10 heading 't end date' time_end_date w 20 heading 'Day Type' convert(time_end_date text 'DY') a heading 'a wkday non-na' if convert(time_end_date text 'DY') ne 'SAT' and convert(time_end_date text 'DY') ne 'SUN' and a ne na then a else na heading 'moving minus 2 wkday non-na (AF1)' af1
    ->
    Step 3:
    =======
    Extend Oracle OLAP with regular SQL functionality like SQL ANALYTICAL functions to fill up the gaps for intermediate week days like DAY_20100104 (TUE), DAY_20100105 (WED) etc.
    Use: SQL Analytical Function LAST_VALUE() in query.. i.e. in report or query.. dont use AF1 but use LAST_VALUE(af1).... as below pseudo-code:
    LAST_VALUE(cube_view.af1) over (partition by <product, organization, ... non-time dimensions> order by <DAY_KEY_Col> range unbounded preceeding and current row)
    HTH
    Shankar

  • Regarding Lightroom Slideshow module: When I click on the preview button I get the following error: An internal error has occurred: ?:0: attempt at index a nil value. This occurs with any group of images I select in my catalog.

    Regarding Lightroom Slideshow module: When I click on the preview button I get the following error: An internal error has occurred: ?:0: attempt at index a nil value. This occurs with any group of images I select in my catalog.

    Jeannine,
         If you follow the advice of the previous poster Julie Kmoch and then gradualy add presets back in one at a time you might be able to find the one that is causing the issue. I may be guessing, but I believe the issue has something to do with either an incompatible Preset setting (eg a older preset in newer version of LR) or a corrupt Preset.
    Say you bought LR2 and imported a bunch of Presets from the internet, cuz 'Hey these effects are cool and I don't have to recreate the wheel', and then you upgraded to LR3 (not a clean install) and now one of the Presets that calls a certain slider setting or value that is different in LR3 doesn't work anymore. This might be why it throws the error, but again I am just speculating.
    Location of LR Preset folder in Windows Vista/ Windows 7
    C:/Users/<YourUserName>/AppData/Roaming/Adobe/Lightroom/Develop Presets
    If you do not see the folder AppData, you may need to change the settings in Windows Explorer to 'Show Hidden Files and Folders'. To do that in Windows Vista/ Windows 7, open a Windows Explorer window, Click on Organize, then Foler and Search Options. Then click on the View tab and select the option button next to Show hidden files, folders and drives.
    Hope this helps a bit,
    Glenn

  • How can I restrict the rows of a SELECT which uses analytical functions?

    Hello all,
    Can anyone please tell me how to restrict the following query:
    SELECT empno,
    ename,
    deptno,
    SUM(sal) over(PARTITION BY deptno) sum_per_dept
    FROM emp;
    I would need just the lines which have sum_per_dept>100, without using a SUBSELECT.
    Is there any way which is specific for analytical functions?
    Thank you in advance,
    Eugen
    Message was edited by:
    misailescu

    SQL> select empno,
      2  ename,
      3  deptno,sum_per_dept
      4  from
      5  (
      6  SELECT empno,
      7  ename,
      8  deptno,
      9  SUM(sal) over(PARTITION BY deptno) sum_per_dept
    10  FROM emp
    11  )
    12  where sum_per_dept>1000;
    EMPNO ENAME      DEPTNO SUM_PER_DEPT
    7839 KING           10         8750
    7782 CLARK          10         8750
    7934 MILLER         10         8750
    7902 FORD           20         6775
    7369 SMITH          20         6775
    7566 JONES          20         6775
    7900 JAMES          30         9400
    7844 TURNER         30         9400
    7654 MARTIN         30         9400
    7521 WARD           30         9400
    7499 ALLEN          30         9400
    7698 BLAKE          30         9400
    12 rows selected
    SQL>
    SQL> select empno,
      2  ename,
      3  deptno,sum_per_dept
      4  from
      5  (
      6  SELECT empno,
      7  ename,
      8  deptno,
      9  SUM(sal) over(PARTITION BY deptno) sum_per_dept
    10  FROM emp
    11  )
    12  where sum_per_dept>9000;
    EMPNO ENAME      DEPTNO SUM_PER_DEPT
    7900 JAMES          30         9400
    7844 TURNER         30         9400
    7654 MARTIN         30         9400
    7521 WARD           30         9400
    7499 ALLEN          30         9400
    7698 BLAKE          30         9400
    6 rows selected
    SQL> Greetings...
    Sim

  • Analytical function syntax help

    The following query sorts by most occuring hesid descedning and requires TWO full table scans of the episodes_full_test table :
    create table episodes_full_test (epikey number, hesid number, dob date) tablespace analysis_ip_d;
    insert into episodes_full_test values (100, 20, to_date('31-07-1975','DD-MM-YYYY'));
    insert into episodes_full_test values (101, 20, to_date('31-07-1975','DD-MM-YYYY'));
    insert into episodes_full_test values (102, 20, to_date('31-07-1975','DD-MM-YYYY'));
    insert into episodes_full_test values (103, 20, to_date('31-07-1975','DD-MM-YYYY'));
    insert into episodes_full_test values (104, 10, to_date('31-07-1985','DD-MM-YYYY'));
    insert into episodes_full_test values (105, 30, to_date('31-07-1995','DD-MM-YYYY'));
    insert into episodes_full_test values (106, 30, to_date('31-07-1995','DD-MM-YYYY'));
    insert into episodes_full_test values (107, 30, to_date('31-07-1995','DD-MM-YYYY'));
    commit;
    select eft.hesid, eft.epikey, eft.dob
    from episodes_full_test eft
    join (select hesid, count(hesid) count_hesid
    from episodes_full_test
    group by hesid) v1
    on eft.hesid = v1.hesid
    order by v1.count_hesid desc, eft.epikey;     
    HESID EPIKEY DOB
    20 100 31/07/1975
    20 101 31/07/1975
    20 102 31/07/1975
    20 103 31/07/1975
    30 105 31/07/1995
    30 106 31/07/1995
    30 107 31/07/1995
    10 104 31/07/1985
    I'm sure there's a way to use analytical functions such that Oracle only needs to perform ONE full table scan of episodes_full_test, but I can't figure out the syntax
    Can anyone advise please ?
    (Oracle 9r2)
    Thanks, Gus

    Thank you for providing the create table, insert commands and required output as it makes answering the question much easier (once I'd removed the tablespace specification)
    SQL> select hesid, epikey, dob
      2  from
      3      (
      4      select eft.hesid, eft.epikey, eft.dob,
      5          count(*) over (partition by eft.hesid) count_hesid
      6      from episodes_full_test eft
      7      )
      8  order by count_hesid desc;
         HESID     EPIKEY DOB
            20        100 31-JUL-75
            20        101 31-JUL-75
            20        102 31-JUL-75
            20        103 31-JUL-75
            30        105 31-JUL-95
            30        106 31-JUL-95
            30        107 31-JUL-95
            10        104 31-JUL-85
    8 rows selected.
    SQL>

  • Discoverer Analytic Function windowing - errors and bad aggregation

    I posted this first on Database General forum, but then I found this was the place to put it:
    Hi, I'm using this kind of windowing function:
    SUM(Receitas Especificas) OVER(PARTITION BY Tipo Periodo,Calculado,"Empresa Descrição (Operador)","Empresa Descrição" ORDER BY Ini Periodo RANGE BETWEEN INTERVAL '12' MONTH PRECEDING AND INTERVAL '12' MONTH PRECEDING )
    If I use the "Receitas Especificas SUM" instead of
    "Receitas Especificas" I get the following error running the report:
    "an error occurred while attempting to run..."
    This is not in accordance to:
    http://www.boku.ac.at/oradoc/ias/10g(9.0.4)/bi.904/b10268.pdf
    but ok, the version without SUM inside works.
    Another problem is the fact that for analytic function with PARTITION BY,
    this does not work (shows the cannot aggregate symbol) if we collapse or use "<All>" in page items.
    But it works if we remove the item from the PARTITION BY and also remove from workbook.
    It's even worse for windowing functions(query above), because the query
    only works if we remove the item from the PARTITION BY but we have to show it on the workbook - and this MAKES NO SENSE... :(
    Please help.

    Unfortunately Discoverer doesn't show (correct) values for analytical functions when selecting "<All>" in a page item. I found out that it does work when you add the analytical function to the db-view instead of to the report as a calculation or as a calculated item on the folder.
    The only problem is you've to name all page-items in the PARTITION window, so, when adding a page-item to the report, you,ve to change the db-view and alter the PARTITION window.
    Michael

  • Analytic function question

    I have been trying to fix this since yesterday ad I am close, here is the question
    CREATE TABLE P_X_STG
      PID  NUMBER,
      EID  VARCHAR2(10 BYTE)
    CREATE TABLE TAB_C
      EID  VARCHAR2(10 BYTE),
      X    NUMBER
    SET DEFINE OFF;
    Insert into P_X_STG
       (PID, EID)
    Values
       (1, 'e3');
    Insert into P_X_STG
       (PID, EID)
    Values
       (1, 'e1');
    Insert into P_X_STG
       (PID, EID)
    Values
       (1, 'e2');
    Insert into P_X_STG
       (PID, EID)
    Values
       (2, 'e3');
    Insert into P_X_STG
       (PID, EID)
    Values
       (2, 'e4');
    Insert into P_X_STG
       (PID, EID)
    Values
       (3, 'e5');
    COMMIT;
    SET DEFINE OFF;
    Insert into TAB_C
       (EID, X)
    Values
       ('e1', 100);
    Insert into TAB_C
       (EID, X)
    Values
       ('e3', 300);
    Insert into TAB_C
       (X)
    Values
       (400);
    COMMIT;we match both the tables by eid
    if the eid matches, get corresponding x information
    if a pid has multiple different eids, for matching eid, get corresponding x information, but for non matching, simply put a NULL to x
    for matching eids, print "ematch", for non matchig eids, print "pmatch"
    in the below query, for non matching eids, we copy x information from matching ones, can someone help me substitute tha with Null
    SELECT pid,
                eid,
                x,
                ematch
           FROM (  SELECT p.pid,
                          p.eid,
                          CASE
                             WHEN p.eid = c.eid THEN c.x
                             ELSE LAG (x) OVER (ORDER BY pid)
                          END
                             x,
                          CASE WHEN p.eid = c.eid THEN 'ematch' ELSE 'pmatch' END
                             ematch
                     FROM p_x_stg p, tab_c c
                    WHERE p.eid = c.eid(+)
                 ORDER BY pid, eid)
          WHERE x IS NOT NULL
       ORDER BY pid;
    result is
    1     e1     100     ematch
    1     e2     100     pmatch
    1     e3     300     ematch
    2     e3     300     ematch
    2     e4     300     pmatchI want below result
    1    e1    100    ematch
    1    e2    null    pmatch
    1    e3    300    ematch
    2    e3    300    ematch
    2    e4    null    pmatchfor 1, e2 and 2, e4, instead of copying, just put null
    Edited by: user650888 on Apr 6, 2012 12:29 PM

    Hi,
    user650888 wrote:
    thanks, can this be combined into one query ?Do you mean without a sub-query?
    Why? What's wrong with a sub-query?
    If uisng a sub-query is the clearest and most efficient way to get the results you want, why wouldn't you want to use a sub-query?
    Suppose there was a way, that involved some other technique. How would we know that you didn't object to that technique as well?
    At any rate, I don't see how to do it without a sub-query. Analytic functions are computed after the WHERE clause is applied. If you want to use the results of an analytic function in a WHERE clause (as here, we want to use the results of the analytic COUNT function in a WHERE clause), then you have to compute the analytic function separately, in another (sub-) query.

  • Analytic Functions in CONNECT BY Queries

    Can analytic functions be used in a CONNECT BY query? Are there limits?
    This problem occurs in Oracle 11.1.0.6.0, 10.2 and 10.1.
    Here is the presenting problem:
    Starting with data like this:
    CREATE TABLE     enrollment
    (      name          VARCHAR2 (10)
    ,      coursenumber     NUMBER
    INSERT INTO enrollment (name, coursenumber) VALUES ('Ted',      101);
    INSERT INTO enrollment (name, coursenumber) VALUES ('Ted',      102);
    INSERT INTO enrollment (name, coursenumber) VALUES ('Ted',      103);
    INSERT INTO enrollment (name, coursenumber) VALUES ('Mary',      102);
    INSERT INTO enrollment (name, coursenumber) VALUES ('Mary',      104);
    INSERT INTO enrollment (name, coursenumber) VALUES ('Hiro',      101);
    INSERT INTO enrollment (name, coursenumber) VALUES ('Hiro',      104);
    INSERT INTO enrollment (name, coursenumber) VALUES ('Hiro',      105);
    COMMIT;I'm trying to get cross-tab output like this:
    NAME       TXT
    Hiro         101            104  105
    Mary              102       104
    Ted          101  102  103without knowing before-hand what course numbers, or even how many course numbers, will be in the results.
    My strategy was to use LPAD to make the course numbers always occupy 5 spaces.
    If n "columns" needed to be left blank before the number, I wanted to add 5n extra spaces.
    I tried this:
    WITH     universe     AS
         SELECT     name
         ,     coursenumber
         ,     DENSE_RANK () OVER ( ORDER BY        coursenumber)     AS cnum
         ,     ROW_NUMBER () OVER ( PARTITION BY  name
                                   ORDER BY          coursenumber
                           )                         AS snum
         FROM     enrollment
    SELECT     name
    ,     REPLACE ( SYS_CONNECT_BY_PATH ( LPAD ( TO_CHAR (coursenumber)
                                              , 5 * (cnum - LAG (cnum, 1, 0)
                                                                   OVER ( PARTITION BY  name
                                                                             ORDER BY          coursenumber
              )     AS txt
    FROM     universe
    WHERE     CONNECT_BY_ISLEAF     = 1
    START WITH     snum     = 1
    CONNECT BY     snum     = PRIOR snum + 1
    AND          name     = PRIOR name
    ORDER BY     name
    ;but the txt column was always NULL.
    I tried showing some of the intermediate calculations:
    WITH     universe     AS
         SELECT     name
         ,     coursenumber
         ,     DENSE_RANK () OVER ( ORDER BY        coursenumber)     AS cnum
         ,     ROW_NUMBER () OVER ( PARTITION BY  name
                                   ORDER BY          coursenumber
                           )                         AS snum
         FROM     enrollment
    SELECT     name
    ,     REPLACE ( SYS_CONNECT_BY_PATH ( LPAD ( TO_CHAR (coursenumber)
                                              , 5 * (cnum - LAG (cnum, 1, 0)
                                                                   OVER ( PARTITION BY  name
                                                                             ORDER BY          coursenumber
              )     AS txt
    ,     coursenumber
    ,     cnum
    ,     LAG (cnum, 1, 0) OVER ( PARTITION BY  name
                                                ORDER BY          coursenumber
                         )      AS lag_cnum
    FROM     universe
    -- WHERE     CONNECT_BY_ISLEAF     = 1
    START WITH     snum     = 1
    CONNECT BY     snum     = PRIOR snum + 1
    AND          name     = PRIOR name
    ORDER BY     name
    ;and they all seemed reasonable:
    NAME       TXT                            COURSENUMBER       CNUM   LAG_CNUM
    Hiro                                               101          1          0
    Hiro                                               104          4          1
    Hiro                                               105          5          4
    Mary                                               102          2          0
    Mary                                               104          4          2
    Ted                                                101          1          0
    Ted                                                102          2          1
    Ted                                                103          3          2but txt was still NULL.
    I got around the problem by computing the LAG in a sub-query (see [this thread|http://forums.oracle.com/forums/message.jspa?messageID=3875566#3875566]), but I'd like to know why LAG didn't work in the CONNECT BY query, or at least within SYS_CONNECT_BY_PATH.
    I've had other problems before trying to use analytic functions in CONNECT BY queries. Sometimes, the presence of an analytic function woudl cause CONNECT BY to never work, sometimes it would destroy the order of the output. (Sorry, I don't have those examples handy now.)
    Are there limitations on using analytic functions in a CONNECT BY query?
    is there a work-around other than computing the analytic functions in a sub-query?
    Thanks.

    how about
    SQL> with temp as
      2  (select name
      3       , coursenumber
      4    from enrollment
      5  )
      6  , courses as
      7  (select distinct
      8          coursenumber
      9     from enrollment
    10  )
    11  select name
    12       , replace (sys_connect_by_path (case when t_course is not null
    13         then rpad (t_course, 8, ' ')
    14         else rpad (' ', 8, ' ')
    15         end, ';'), ';', ' ') scbp
    16    from (
    17  select t.name
    18       , t.coursenumber t_course
    19       , c.coursenumber c_course
    20       , row_number() over (partition by t.name
    21                                order by c.coursenumber
    22                           ) rn
    23    from temp  t partition by (name)
    24    right outer
    25    join courses c
    26      on c.coursenumber = t.coursenumber
    27  )
    28   where connect_by_isleaf = 1
    29   start with rn = 1
    30   connect by rn = prior rn + 1
    31   and name = prior name;
    NAME       SCBP
    Hiro        101                        104      105
    Mary                 102               104
    Ted         101      102      103

Maybe you are looking for

  • Find my Mac not working in MB Air

    I am trying to activate Find My Mac and iClud preferences says I must update Recovery System. If I check Software Update there is nothing there and download manually and install seems to work (download is 456 MB and install 73 kb??) but error remains

  • Problem with App not in English Please help

    I purchased ITuran GPS for the UK for$39.99 It says the Language is English. It is in Hebrew. How do I get my money back? I contacted ITuran and they confirmed it is indeed in Hebrew. CLIFF NOTES: The App page says English its in Hebrew i want a refu

  • Files are copied from the server very long

    After upgrading to OS X Lion to Mac pro, very long are copied large files from a network server. Instead of 4 minutes, 13 minutes is up. How to speed up the process of transferring a file? Sorry for my English .

  • Computer restarted after Mac OSX ...

    I've been surfing the net for a solution to this for two days, and so far nothing has worked. I'll abbreviate this 'nightmare' as best I can ... I have a Mac G5 running 10.5x. Been running fine since I bought it some years back. Last week it just fro

  • I need to re-install CS2. Do I have to de-install first?

    I recently had an error warning whilst using In-design, it told me that I should re-install CS2. Do I have to de-install CS2 first or will the process automatically write over the previous copy?