Archive for May, 2009

Uzupełnienie braków w ciągłości, kumulacja

Thursday, May 28th, 2009 | Uncategorized | 1 Comment

data baza;
input dzien kumulacja;
cards;
1 1
2 3
8 4
10 8
15 9
22 15
27 18
30 20
;run;

data temp;
 set baza;
 output;
 ile_brakuje = max(((lag(dzien)-dzien)+1)*-1,0);
  do x = 1 to ile_brakuje;
   nowy_dzien = dzien - x;
  drop ile_brakuje x;
   output;
  end;
run;

data nowa_baza;
set temp;
dzien = coalesce(nowy_dzien,dzien);
keep  kumulacja dzien;
run;

proc sort data= nowa_baza;
by dzien;
run;

Top N wartości dla każdej grupy w pojedyńczym zapytaniu

Thursday, May 21st, 2009 | Uncategorized | No Comments

w pojedyńczym zapytaniu, wow

http://rickosborne.org/blog/index.php/2008/01/07/sql-getting-top-n-rows-for-a-grouped-query/

SELECT c.*, d.ranknum
FROM girl AS c
  INNER JOIN (
    SELECT a.id, COUNT(*) AS ranknum
    FROM girl AS a
      INNER JOIN girl AS b ON (a.hair = b.hair) AND (a.score <= b.score)
    GROUP BY a.id
    HAVING COUNT(*) <= 3
  ) AS d ON (c.id = d.id)
ORDER BY c.hair, d.ranknum

Search