Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
nexus4
Kreisi kasutaja

liitunud: 01.03.2012
|
20.04.2015 12:17:19
Abi exceliga |
|
|
Tea kui palju tegu programmerimise või exceliga, aga kasutusel olevatest tarkvaradest saaks veel kasutada ka oracle sql developerit ja Tabelau Desktop'i.
Vaja koostada graafik. Algandmed järgmised:
Pallide arv õhus | Millal pall õhku löödi | Millal pall maha tagasi kukkus
562 |28.10.2013 2:56 | 28.10.2013 7:05
9 28.10.2013 5:07 1.11.2013 16:20
6 28.10.2013 6:34 28.10.2013 10:21
3 28.10.2013 6:37 28.10.2013 7:43
17 28.10.2013 6:50 28.10.2013 9:19
16 28.10.2013 7:14 28.10.2013 11:13
281 28.10.2013 7:15 28.10.2013 12:40
7 28.10.2013 7:55 28.10.2013 10:50
9 28.10.2013 8:02 28.10.2013 9:32
20 28.10.2013 8:27 28.10.2013 10:40 |
Ehk löödi palle järjest õhku. Graafku x telg peaks olema aeg (antud juhul siis alates 28.10.2013 2:56 ning kuni 28.10.2013 10:50) ning y telg pallide arv õhus.
Ehk igal kuvataval ajahetkel mitu palli oli õhus.
Ei suuda algoritmi välja mõelda...
|
|
Kommentaarid: 29 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
26 |
|
tagasi üles |
|
 |
Sults
HV veteran
liitunud: 06.09.2004
|
|
Kommentaarid: 38 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
35 |
|
tagasi üles |
|
 |
nexus4
Kreisi kasutaja

liitunud: 01.03.2012
|
20.04.2015 15:02:35
|
|
|
Selline algoritm täitsa töötab, aga pidasin silmas rohkem sellist valemit, koodijuppi, mis "pallide liikumise" ise arvutaks. praegu mulle tundub, et tegid selle käsitsi.
Antud ülesanne oli ainult näide, tegelikuses on ridu kuskil pea 3000
|
|
Kommentaarid: 29 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
26 |
|
tagasi üles |
|
 |
infidel
HV kasutaja

liitunud: 31.01.2004
|
20.04.2015 15:31:20
|
|
|
Kui SQL võimalus olemas, siis lahendaks asja umbes nii:
Pallide andmed tabelisse. Tabel midagi sellist, väljade nimesid võib vabalt muuta muidugi.
sql:
|
CREATE TABLE pallid (pallid_ohus int,yles_aeg timestamp,alla_aeg timestamp);
|
Seejärel genereerida aegrida soovitud sammuga (antud juhul minut).
sql:
|
SELECT generate_series((SELECT min(yles_aeg) FROM pallid),(SELECT max(yles_aeg) FROM pallid),'1 minute');
|
, mis aktiivselt rakendatuna kujul:
sql:
|
SELECT ajahetk,(SELECT SUM(pallid_ohus) FROM pallid WHERE ajahetk BETWEEN yles_aeg AND alla_aeg) AS pallide_arv_ohus FROM (SELECT generate_series((SELECT min(yles_aeg) FROM pallid),(SELECT max(yles_aeg) FROM pallid),'1 minute') AS ajahetk) AS alpha ;
|
Pärast saadud tabel Excelisse ja suvaline graafikuvariant peale.
|
|
Kommentaarid: 36 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
35 |
|
tagasi üles |
|
 |
Sults
HV veteran
liitunud: 06.09.2004
|
20.04.2015 17:13:21
|
|
|
nexus4 kirjutas: |
Selline algoritm täitsa töötab, aga pidasin silmas rohkem sellist valemit, koodijuppi, mis "pallide liikumise" ise arvutaks. praegu mulle tundub, et tegid selle käsitsi.
Antud ülesanne oli ainult näide, tegelikuses on ridu kuskil pea 3000 |
Mida ma seal sinu arvates käsitsi tegin? Panin ajahetked ühte tulpa? Vajutasin sortimise nuppu? Exceli valemid ju ise arvutavad omast vabast ajast ja graafik jookseb ka ise kokku. Eesmärk oli ju algse kirjelduse järgi saada graafik. Need tegevused ei oleks võtnud mul rohkem aega ka siis, kui kirjeid oleks olnud kümneid tuhandeid.
Teinekord kirjuta ikka kohe, mida sa saada tahad!
Kuna graafikul peavad ajahetked olema ühes tulbas (ühel teljel), siis on vaja allakukkumise aeg panna õhku löömise ajaga kokku. Mõistlik oleks algusest peale pidada arvestust kahetulbalises tabelis, kus ajahetkele lisaks on pallide liikumise arv, mille märk näitab, kas neid õhku lisandus või vähenes. Ükskõik, kas teed seda Exceli valemi või SQL lausega, tekita see 2 tulbaline tabel, sorteeri ajahetke järgi ja sul ongi graafiku jaoks andmed praktiliselt olemas (mingile ajahetkele vastava summa tekitamine ei ole keeruline ei Excelis, ega SQL-is).
SQLis peaks andma sellise tabeli:
SELECT palle AS arv, õhkuhetk AS hetk FROM tabel
UNION ALL
SELECT -palle AS arv, mahahetk AS hetk FROM tabel
ORDER BY hetk
Ilmselt saaks keerukama SQL lausega ka kohe liitmistehte ka teha, aga ma pole enam aastaid SQLiga tegelenud, ei hakka pakkuma.
|
|
Kommentaarid: 38 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
35 |
|
tagasi üles |
|
 |
nexus4
Kreisi kasutaja

liitunud: 01.03.2012
|
20.04.2015 17:40:25
|
|
|
Ah sorry, piisavalt kaua tegeleda millegagi siis ei näe neid lahendusi ka.
Mõlemale ajale pallide arv külge, mahakukkumis ajale märgi muutus, see järel ühte tulpa ja läheb minna. Proovin kui andmebaasile uuesti ligi saan ja annan teada mis tulemus sai.
|
|
Kommentaarid: 29 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
26 |
|
tagasi üles |
|
 |
Sults
HV veteran
liitunud: 06.09.2004
|
20.04.2015 19:07:45
|
|
|
Seda jooksvat summat võiks arvutada nt:
SELECT hetk, SUM(arv) OVER (ORDER BY hetk) AS hetkelõhus FROM eelmiseSQLitulemus
Ehk kokku siis:
SELECT hetk, SUM(arv) OVER (ORDER BY hetk) AS hetkelõhus FROM
(
SELECT palle AS arv, õhkuhetk AS hetk FROM tabel
UNION ALL
SELECT -palle AS arv, mahahetk AS hetk FROM tabel
)
|
|
Kommentaarid: 38 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
35 |
|
tagasi üles |
|
 |
nexus4
Kreisi kasutaja

liitunud: 01.03.2012
|
23.04.2015 22:26:54
|
|
|
Ei ole andmebaasile ligi saanud et sql'iga proovida, aga kuna mul on palju kattuvaid aegasid (nt mitu erineval ajahetkel õhku löödud palli kukub samal ajahetkel maha tagasi või mõlemat) siis tekib ühele ja samale kuupäevale mitu erinevat rida... Mis keerab nagu tuksi veits selle lähenemise. Käsitsi on jällegi jube töö samadel kuupäevadel korrigeerimisi teha.
|
|
Kommentaarid: 29 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
26 |
|
tagasi üles |
|
 |
infidel
HV kasutaja

liitunud: 31.01.2004
|
24.04.2015 08:58:21
|
|
|
See ongi koht, kus referentsiks olev ajajoon tuleb eraldi tekitada ja sinna andmed külge lugeda.
Kui tegemist on lõpliku andmestikuga (mingist X ajast, mitte jooksev), siis võid privasse mingi kontakti visata.
|
|
Kommentaarid: 36 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
35 |
|
tagasi üles |
|
 |
Sults
HV veteran
liitunud: 06.09.2004
|
24.04.2015 09:31:18
|
|
|
Ma ei saa aru, mida pagana pusimist sa seal käsitsi teed?
Excelis on sellest andmestikust graafiku tegemine minuti küsimus isegi kümnete tuhandete kirjete korral! Kopeerid üleslöömise ja allakukkumise ajad ühte tulpa ja sorteerid siis ajaliselt.
|
|
Kommentaarid: 38 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
35 |
|
tagasi üles |
|
 |
alfreedo
HV vaatleja
liitunud: 20.06.2010
|
24.04.2015 17:41:42
|
|
|
tsitaat: |
nexus4
... aga kuna mul on palju kattuvaid aegasid (nt mitu erineval ajahetkel õhku löödud palli kukub samal ajahetkel maha tagasi või mõlemat) siis tekib ühele ja samale kuupäevale mitu erinevat rida..
|
Seda ma ka mötlesin, et kole lihtsalt tahad graafikut sellistest andmetest saada?
Siin tekib Sul isegi samale kellaajale mitu erinevat rida..
tsitaat: |
9 28.10.2013 5:07 1.11.2013 16:20
|
Need 9 on isegi mitu päeva õhus?
Sa peaks äkki andmed laiali laotama ja siis valemiga igal sekundil (või minutil) õhus olevad pallid kokku summeerima ja selle baasil graafiku tegema
|
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
Sults
HV veteran
liitunud: 06.09.2004
|
25.04.2015 12:56:06
|
|
|
See, mitu pallilöömist või kukkumist satub samale hetkele, ei muuda seda ülesannet karvavõrragi keerukamaks.
Samuti mitte ka see, kas pallid on õhus 1 sekundi, 9 päeva või 9 aastat. Üles löödud pallide arv - alla kukkunud pallide arv näitab ikka sellel ajahetkel õhus olevate pallide arvu. Graafiku tüüp tuleb lihtsalt õige valida (ajatelg peab olema pidev), mitte suvaline. Ja iseasi on see, kas graafiku pealt iga üleslöömine ja allakukkumine loetav on, sest kui samal hetkel kukub alla sama palju palle kui üles lüüakse, siis graafikule jõnksu ei teki.
alfreedo kirjutas: |
tsitaat: |
nexus4
... aga kuna mul on palju kattuvaid aegasid (nt mitu erineval ajahetkel õhku löödud palli kukub samal ajahetkel maha tagasi või mõlemat) siis tekib ühele ja samale kuupäevale mitu erinevat rida..
|
Seda ma ka mötlesin, et kole lihtsalt tahad graafikut sellistest andmetest saada?
Siin tekib Sul isegi samale kellaajale mitu erinevat rida..
tsitaat: |
9 28.10.2013 5:07 1.11.2013 16:20
|
Need 9 on isegi mitu päeva õhus?
Sa peaks äkki andmed laiali laotama ja siis valemiga igal sekundil (või minutil) õhus olevad pallid kokku summeerima ja selle baasil graafiku tegema |
|
|
Kommentaarid: 38 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
35 |
|
tagasi üles |
|
 |
|