praegune kellaaeg 20.06.2024 04:46:32
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
sõnum |
|
nexus4
Kreisi kasutaja
liitunud: 01.03.2012
|
19.06.2014 18:15:18
SQL probleem |
|
|
On tabel nimega TABEL
Tabelis on veerud ID, SÜNDMUS, OBJEKT, AEG
AEG on date, ülejäänud number
---
Oletame, et tabel on õnnetuste kohta ( näiteks metsatulekahju, selline kus mets läheb põlema, kustutatakse ära läheb kohe uuesti jne ).
Kui tekib metsatulekahju läheb kohe tabelisse kirja uus ID, olgu selleks siis number xxx1.
Seejärel lisandub sellele metsatulele SÜNDMUS, sündmuseks on ka number yyy1. Sündmuseid on 1 metsatulekahju (ID) kohta mitu, sest mets võib süttida ja kustuda koheselt uuesti (kõik jääb 1 õnnetuse (ID) sisse)
Kuna metsatükke on erinevaid, siis kirja läheb ka OBJEKT, milline metsatükk parasjagu õnnetuses osaleb, olgu see zzz1. (kui kustub näiteks metsatükk zzz1 võib kohe peale selle kustumist põlema minna ka mõni muu metsatükk nt zzz2
Ja lõpuks aeg millal miski SÜNDMUS toimus.
1. Ehk siis, mets läheb põlema, tekib ID xxx1, SÜNDMUS yyy1, OBJEKT zzz1 ja aeg nt. '19.06.2014 10:00'.
2. Nüüd kustutati mets ära, tekib tabelisse sama ID xxx1, aga uus sündmus yyy2, OBJEKT zzz1 ja aeg nt. '19.06.2014 10:05'
3. Mets läks uuesti põlema, tekib tabelisse sama ID xxx1, aga uus sündmus yyy3, OBJEKT zzz1 ja aeg sama või väga vähe erinev '19.06.2014 10:05'
4. Mets kustutatakse, tekib tabelisse ikka sama ID xxx1, uus sündmus yyy4, OBJEKT zzz1, aeg '19.06.2014 10:20'
5. Kõrval olev metsatükk läheb põlema, tekib tabelisse ikka sama ID xxx1, uus SÜNDMUS yyy5, OBJEKT zzzN, 'aeg 19.06.2014 10:21'
6. Mets kustutatakse, sama ID xxx1, uus SÜNDMUS yyy6, OBJEKT zzzN, aeg '19.06.2014 11:05'
Mets enam ei sütti, õnnetus läbi.
Sellist rada vaatleme kui ühte suurt põlengut ja tal on üks ID (hoolimata, et mets juba vahepea oli kustutatud ja siis süttis uuesti)
---
Ehk siis nüüd ilma selle illustreeriva näiteta on TABEL, kus on ID, SÜNDMUS, OBJEKT, AEG.
Kus ühe ID külge on seotud mitu SÜNDMUST, ja iga sündmuse külge üks OBJEKT ja AEG, millal toimus.
Minu soov on saada ühe ID alla kuuluv aeg (lõpp-algus) kõige esimesest süttimisest (iga esimene sündmus on süttimine ja viimane kustumine) kuni kõige viimase kustutamiseni, olenemata mis objekte (metsatukkasid) põleng haaras. OBJEKTID on kindlad väärtused. ID ja SÜNDMUS on iga kandega suurenevad arvud (põhimõtteliselt +1)
Edit, ehk siis antud sissekannete põhjal peaks vastuseks tulema 11:05 - 10:00 = 1h 5m. (Jätame selle aja praegu nii nagu ta on, (vaataks praegu algoritmi,) sellekohta on ka küsimused kuidas neid tabelist võtta, võrrelda ja lahutada kui tabel kuvab ainult kuupäeva, aga tegelikult on seal ka tundi, minutid ja sekundid. Ja tegelikult võivad tulekahjud kesta mitu päeva.)
|
|
Kommentaarid: 29 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
26 |
|
tagasi üles |
|
|
infidel
HV kasutaja
liitunud: 31.01.2004
|
19.06.2014 19:35:31
|
|
|
Ei ole kindel, mis sa täpselt saada tahad, aga vast midagi sellist.
sql:
|
SELECT ID, min(AEG) AS Algus, max(AEG) AS Lopp, max(AEG)-min(AEG) AS Kestus FROM TABEL GROUP BY ID;
|
Niimoodi saad igale ID-le vastava kestuse.
|
|
Kommentaarid: 35 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
34 |
|
tagasi üles |
|
|
andre85
HV vaatleja
liitunud: 10.09.2006
|
20.06.2014 17:44:55
Re: SQL probleem |
|
|
Kirjutame su probleemi ringi.
Tegemist on metsatulekahjude registriga. Väiksem metsatulekahju võib olla ainult üls põleng, suurem metsatulekahju koosneb mitmest põlengust. Põleng avastatakse mingil ajal ja kustutatakse mingiks teiseks ajaks - põlengul on algus ja lõpp. Põleng on alati seotud mingi metsatukaga. Metsatulekahju on seotud mingi suurema piirkonna ehk metsaga.
Tegelikult on sul 2 tabelit - metsatulekahi ja põleng. Metsatulekahi algab esimese ja lõpeb viimase põlenguga. Edasi toimeta ise...
nexus4 kirjutas: |
On tabel nimega TABEL
Tabelis on veerud ID, SÜNDMUS, OBJEKT, AEG
AEG on date, ülejäänud number
---
Oletame, et tabel on õnnetuste kohta ( näiteks metsatulekahju, selline kus mets läheb põlema, kustutatakse ära läheb kohe uuesti jne ).
Kui tekib metsatulekahju läheb kohe tabelisse kirja uus ID, olgu selleks siis number xxx1.
Seejärel lisandub sellele metsatulele SÜNDMUS, sündmuseks on ka number yyy1. Sündmuseid on 1 metsatulekahju (ID) kohta mitu, sest mets võib süttida ja kustuda koheselt uuesti (kõik jääb 1 õnnetuse (ID) sisse)
Kuna metsatükke on erinevaid, siis kirja läheb ka OBJEKT, milline metsatükk parasjagu õnnetuses osaleb, olgu see zzz1. (kui kustub näiteks metsatükk zzz1 võib kohe peale selle kustumist põlema minna ka mõni muu metsatükk nt zzz2
Ja lõpuks aeg millal miski SÜNDMUS toimus.
1. Ehk siis, mets läheb põlema, tekib ID xxx1, SÜNDMUS yyy1, OBJEKT zzz1 ja aeg nt. '19.06.2014 10:00'.
2. Nüüd kustutati mets ära, tekib tabelisse sama ID xxx1, aga uus sündmus yyy2, OBJEKT zzz1 ja aeg nt. '19.06.2014 10:05'
3. Mets läks uuesti põlema, tekib tabelisse sama ID xxx1, aga uus sündmus yyy3, OBJEKT zzz1 ja aeg sama või väga vähe erinev '19.06.2014 10:05'
4. Mets kustutatakse, tekib tabelisse ikka sama ID xxx1, uus sündmus yyy4, OBJEKT zzz1, aeg '19.06.2014 10:20'
5. Kõrval olev metsatükk läheb põlema, tekib tabelisse ikka sama ID xxx1, uus SÜNDMUS yyy5, OBJEKT zzzN, 'aeg 19.06.2014 10:21'
6. Mets kustutatakse, sama ID xxx1, uus SÜNDMUS yyy6, OBJEKT zzzN, aeg '19.06.2014 11:05'
Mets enam ei sütti, õnnetus läbi.
Sellist rada vaatleme kui ühte suurt põlengut ja tal on üks ID (hoolimata, et mets juba vahepea oli kustutatud ja siis süttis uuesti)
---
Ehk siis nüüd ilma selle illustreeriva näiteta on TABEL, kus on ID, SÜNDMUS, OBJEKT, AEG.
Kus ühe ID külge on seotud mitu SÜNDMUST, ja iga sündmuse külge üks OBJEKT ja AEG, millal toimus.
Minu soov on saada ühe ID alla kuuluv aeg (lõpp-algus) kõige esimesest süttimisest (iga esimene sündmus on süttimine ja viimane kustumine) kuni kõige viimase kustutamiseni, olenemata mis objekte (metsatukkasid) põleng haaras. OBJEKTID on kindlad väärtused. ID ja SÜNDMUS on iga kandega suurenevad arvud (põhimõtteliselt +1)
Edit, ehk siis antud sissekannete põhjal peaks vastuseks tulema 11:05 - 10:00 = 1h 5m. (Jätame selle aja praegu nii nagu ta on, (vaataks praegu algoritmi,) sellekohta on ka küsimused kuidas neid tabelist võtta, võrrelda ja lahutada kui tabel kuvab ainult kuupäeva, aga tegelikult on seal ka tundi, minutid ja sekundid. Ja tegelikult võivad tulekahjud kesta mitu päeva.) |
_________________ andres |
|
Kommentaarid: 8 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
|
napoleon
Unknown virus
liitunud: 08.12.2008
|
21.06.2014 22:49:46
|
|
|
andre85, nii lihtne see pole, mina näen siin tabelitena vähemalt mets, metsatukk ja põleng. Sinna lisandub tõenäoliselt hulk muid tabeleid, mis konkreetse metsa, metsatuka või põlenguga seotud on, aga neid me ilma täiendava infota ei tea. Tabelil metsapõleng pole mõtet või kui, siis vaid indeks tabelina päringute kiirendamiseks.
Samas ma muidugi ei tea, kas teemaalgataja alles loob süsteemi või on juba midagi olemas. Kuna esimene postitus oli piisavalt segane ja puudulik, siis konkreetselt selle case lahenduse suunas ei viitsinud mõtlema hakata. Kui klient sarnase tellimuse esitaks, siis esimese asjana helistaks ja teeks endale asjad selge(ma)ks
|
|
Kommentaarid: 76 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
59 |
|
tagasi üles |
|
|
nexus4
Kreisi kasutaja
liitunud: 01.03.2012
|
03.07.2014 20:38:56
|
|
|
On jah mitu tabelit, mul päring päris mitmest tabelist korraga, aga see:
infidel kirjutas: |
Ei ole kindel, mis sa täpselt saada tahad, aga vast midagi sellist.
sql:
|
SELECT ID, min(AEG) AS Algus, max(AEG) AS Lopp, max(AEG)-min(AEG) AS Kestus FROM TABEL GROUP BY ID;
|
Niimoodi saad igale ID-le vastava kestuse. |
ei töötanud ja ma hallitasin lolliks ennast, aga probla oli selles, et mul oli liskas AEG veerule ka to_char(aeg) ja siis ta jättis ikka kõik alles. Nüüd korras!
vist
|
|
Kommentaarid: 29 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
26 |
|
tagasi üles |
|
|
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|