Php code (subquery)

molim malu pomoć oko upita:

trebam najtopliji dan po godinama (da vrati točan datum za svaku godinu)

ovako sam ja to pokušao

sqlfiddle

hvala

1 Like

Pokušaj sa

SELECT datum, temp FROM  `vrijeme` where temp = (SELECT max(temp) FROM vrijeme);

Dombo je bio na pravom tragu, ali je potrebno još malo dorade.

http://sqlfiddle.com/#!2/99867/2

Nisam znao za ovaj servis - odlična stvar!

Temperaturu si radije vodi s fiksnim brojem decimala (recimo, s dvije ili koliko ti treba) kao tip decimal ili integer (kod potonjeg ćeš u kodu implicirati broj decimala, recimo 12.30 držiš u bazi kao 1230, 33.4 kao 3340, itd., a kod ispisa i u drugim slučajevima dijeliš sa 100 ili dodaješ točku i sl.)

Trenutni SQL upit ti prikazuje dvije temperature od 1996 godine, no potrebno je prikazati po godini pa dodaj ovo prije order by :

group by M.myear order by vrijeme.datum 

Sada se prikazuju samo dvije godine sa max temperaturama.

Prikazuje jer sam ja ažurirao primjer tako postoji godina u kojoj je najviša temp. postignuta u dva različita dana.

Ako doista postoje dva datuma s istom i najvećom temperaturom u godini, možeš li pojasniti po kojoj logici si odlučio izbaciti jedan od dva datuma? Drugim riječima, možeš li protumačiti zašto nisi izbacio ondaj drugi? I konačno, možeš li reći hoće li u rješenju koje jesi ponudio uvijek biti izbačen isti od dva datuma - ako hoće zašto, a ako neće, o čemu ovisi koji će biti izbačen?

Autor nije specificirao ponašanje u takvom slučaju i zato sam modificirao primjer na način da mu ilustriram nešto puno važnije: kako se programske pogreške mogu unijeti u program već na razini specifikacije. Neuočena nepreciznost, nedorečenost specifikacija rezultira skupom (teško ispravljivom) pogreškom u razvoju informacijskih sustava. Razlog tome je što često onaj koji čita specifikaciju onda nedorečenosti proizvoljno “doreče” ili ih jednostavno ne uoči, pa se napiše program koji se u nedorečenim slučajevima ponaša pogrešno, nepredvidljivo ili se jednostavno ruši. A grešku je teško pronaći, jer je nastala još u vrijeme specificiranja zahtjeva.

1 Like

Pardon, gledao sam i ne znam zašto mislio da mu je potrebna samo godina ne i cijeli datum. Moja pogreška.

Dobro da si me vratio na “pravi put” :slight_smile:

P.S. Sviđa mi se razina specifičnosti do koje ideš, svaka čast.
@paor zanemari moje. Gledao sam krivi uvjet.

Ovako nesto ili mozes voljeti ili mrziti, a ja trenutno obozavam. :slight_smile:

zahvaljujem svima

@tsereg

  • vjerujem da ima smisla što preporučuješ integer ili decimal, ali u ovom slučaju float sasvim dobro gura

  • priznam da mi nije palo na pamet da se mogu pojaviti dva datuma kao rezultat traženog upita, pogotovo što se radi o malom broju (teorijski, jel) povratnih recordsa (17 od 6545) i što je sadržaj kolumni u 2 decimale…nakon probe doista su se pojavili neki duplikati i primjenjujem solomunsko rješenje sa prikazom eventualnih višestrukih recordsa