Diskuze: denné dáta zhromaždené ako mesačné
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Co zkusit tohle?
https://community.oracle.com/thread/2224569?…
Oracle má velký rozdíly oproti SQL serveru i MySQL, nemyslím si, že to mají udělaný lépe ...
Ahoj, pokud mas dateTime a potrebujes z neho dostat jednotlive polozky tak podle mych letitych poznamek by to mela byt funkce extract. Tady na me vyskocila i na googlu https://docs.oracle.com/…tions050.htm.
Chlapci v prvom rade ďakujem za ochotu.
Prešiel som si tie linky čo ste mi poslali, no nie som si úplne istý či funkcia "extract" je tá správna. Pretože extract mi síce vyhodí názov mesiacu, ale ja to potrebujem, aby výsledok vyzeral napríklad nasledovne:
jan 2011 400
Teda v jednoduchosti povedané, príkaz musí najprv spraviť nejaký "count" s rovnakým dátumom (pretože v jeden deň mohlo prísť XY žiadostí, alebo aj žiadna) a potom následne tieto počty "zgroupit" podľa mesiacov a zobraziť mi 5 mesiacov, v rámci ktorých bolo prijatých najviac žiadostí.
Máme napríklad:
ID DateTime Suma
(čas nebudem vypisovať)
1 1.1.2011 4000
2 1.1.2011 2000
3 1.1.2011 5000
4 1.1.2011 4900
5 5.2.2012 3200
6 5.2.2012 3100
. . .
. . .
. . .
x 12.4.2014 1400
a výsledok by bol napríklad:
jan 2011 40
feb 2015 39
apr 2014 36
mar 2011 30
Interpretácia: v priebehu januára 2011 sme zaevidovali najväčší počet žiadostí o pôžičku. Bolo ich až 40. Druhý najväčší počet žiadostí bol evidovaný vo februári 2015. Vtedy bolo prijatých 39 žiadostí o pôžičku. A tak ďalej...
Ako teda postupovať? extract to predsa nebude, že?
Ahoj,
samotny extract to samozrejme nebude. Chces udelat count pres mesice preci ne? Z
tveho dotazu jsem pochopil, ze nevis jak to zpracovat na ten mesic z toho
datetimu. Extractem ziskas mesic, kterej pouzijes jako group podminku a pokud
chces pocet tak nejakej count na zacatek.
CREATE TABLE "ZADOSTI" ("ID" NUMBER PRIMARY KEY, "DATUM" TIMESTAMP (6), "CASTKA" NUMBER);
Insert into ZADOSTI (ID,DATUM,CASTKA) values ('1',to_timestamp('14.01.16 08:03:40,871000000','DD.MM.RR HH24:MI:SSXFF'),'4000');
Insert into ZADOSTI (ID,DATUM,CASTKA) values ('2',to_timestamp('14.01.16 12:04:30,268000000','DD.MM.RR HH24:MI:SSXFF'),'1000');
Insert into ZADOSTI (ID,DATUM,CASTKA) values ('3',to_timestamp('20.01.16 12:04:41,217000000','DD.MM.RR HH24:MI:SSXFF'),'1300');
Insert into ZADOSTI (ID,DATUM,CASTKA) values ('4',to_timestamp('25.01.16 12:20:48,770000000','DD.MM.RR HH24:MI:SSXFF'),'3340');
Insert into ZADOSTI (ID,DATUM,CASTKA) values ('5',to_timestamp('08.02.16 08:05:04,781000000','DD.MM.RR HH24:MI:SSXFF'),'500');
Insert into ZADOSTI (ID,DATUM,CASTKA) values ('6',to_timestamp('11.02.16 08:05:11,142000000','DD.MM.RR HH24:MI:SSXFF'),'3900');
Insert into ZADOSTI (ID,DATUM,CASTKA) values ('7',to_timestamp('24.02.16 08:05:20,801000000','DD.MM.RR HH24:MI:SSXFF'),'2000');
Insert into ZADOSTI (ID,DATUM,CASTKA) values ('8',to_timestamp('10.03.16 08:05:24,842000000','DD.MM.RR HH24:MI:SSXFF'),'2400');
Insert into ZADOSTI (ID,DATUM,CASTKA) values ('9',to_timestamp('18.03.16 08:05:31,741000000','DD.MM.RR HH24:MI:SSXFF'),'5400');
Insert into ZADOSTI (ID,DATUM,CASTKA) values ('10',to_timestamp('08.04.16 08:05:38,007000000','DD.MM.RR HH24:MI:SSXFF'),'1500');
SELECT COUNT(ID) pocet_zadosti, TO_CHAR(TO_DATE(EXTRACT(MONTH FROM DATUM), 'MM'), 'MONTH') mesic
FROM zadosti
GROUP BY (extract(month from DATUM))
ORDER BY extract(month from DATUM) ASC;
Neni to nejhezci, ale myslim, ze by to mohlo byt to, co potrebujes.
Zobrazeno 7 zpráv z 7.