Avatar billede jeden Nybegynder
08. maj 2001 - 15:41 Der er 7 kommentarer og
1 løsning

Summarized tables i oracle 8.x

Er der nogle der kan hjælpe mig med en syntaks til en sumtabel i Oracle?
Avatar billede Slettet bruger
08. maj 2001 - 15:46 #1
select dummy, sum(1)
from dual
group by dummy;
Avatar billede netsrac Praktikant
08. maj 2001 - 15:47 #2
Mener du en sammentælling af felters værdi eller ?

select sum(felt) as antal from dintabel;
Avatar billede slott_hansen Nybegynder
08. maj 2001 - 16:02 #3
Der menes sumtabeller - sådan nogle størrelser som sætter tempo på tingene når man laver optællinger med mere.

Prøv værktøjet Discoverer - det kan lave dem. Jeg har dog ikke nogen ide om hvordan man gør det manuelt!
Avatar billede jeden Nybegynder
08. maj 2001 - 16:04 #4
Det var ikke lige det jeg søgte...
Jeg har hørt at der fra Oracle 8.x skulle være noget der hedder sumtabeller. De består af data fra eksisterende kolonner, lige som Views. De data de indeholder, genereres også med gruppefunktioner (SUM(), COUNT()...) Sumtabellerne har den fordel at de opdateres hver gang der opdateres i databasen. Dvs. at der ikke skal køres select-sætninger hver gang jeg vil have mine resultater. (andet end dem jeg kører på min sumtabel selvfølgelig)
Avatar billede jeden Nybegynder
08. maj 2001 - 16:09 #5
Til slott_hansen
Ja, jeg var inde og kigge på en Oracle diskussionsgruppe. Discoverer kunne lave dem, men.. Jeg har desværre ikke adgang til sådan et værktøj. :o/
Avatar billede holdam Nybegynder
09. maj 2001 - 08:21 #6
Du tænker formentlig på materialized views.

Her er et eksempel:

CREATE MATERIALIZED VIEW sum_view
REFRESH ON DEMAND
AS
SELECT a, SUM(a)
  FROM some_table
GROUP BY a
/

View\'et kan eksempelvis opdateres ved kald af dbms_mview.refresh(\'sum_view\', \'CF\'). Den procedure kan så kaldes ved passende festlige lejligheder
Avatar billede Slettet bruger
09. maj 2001 - 08:21 #7
På metalink var der en del henvisninger til Discoverer.

Hvis du skal lave nummeret via en databasestruktur, kan du lave et materialized view.

Med sådan et view, kan du definere, hvornår det skal opdatere sig selv.
Avatar billede Slettet bruger
09. maj 2001 - 08:33 #8
Her er et længere eksempel. Snapshot og materialized view er iøvrigt synonymer.

CREATE MATERIALIZED VIEW mjv
  REFRESH FAST
  START WITH 1-JUL-98
  NEXT SYSDATE +7 AS
      SELECT l.rowid as l_rid, l.pk, l.ofk, l.c1, l.c2,
        o.rowid as o_rid, o.pk, o.cfk, o.c1, o.c2,
        c.rowid as c_rid, c.pd, c.c1, c.c2
      FROM l, o, c
      WHERE l.ofk = o.pk(+) AND o.ofk = c.pk(+);

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester