SQL-ongelma

On säätaulu mihin kerätään eri paikkakuntien säätietoja. Taulussa mm. kentät Säärivi(autonum) Paikkakunta(Text) Lämpötila(num)
Nyt pitäisi saada haku, joka antaa paikkakunnan jonka suurimman ja pienimmän lämpötilan erotus on suurin.

Kiitos!
4379
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

Mitenkäs tällainen sopisi ongelmaasi?

Taulu: saatila
Taulussa sarakkeet:
- saaRiviId (numero, pakollinen)
- paikkakunta (tekstiä, pakollinen)
- mittauspvm (pvm, pakollinen)
- lampotila (numero, pakollinen)

oletan, että ohjelmassasi on mittauspvm..

Lähtökohta: Halutaan _yhdelle kyselyriville_ seuraavat tiedot:

- pienin mahdollinen lämpötila yhdellä
paikkakunnalla. Mukana kaikki
mittauspäivät.
- suurin mahdollinen lämpötila yhdellä
paikkakunnalla. Mukana kaikki
mittauspäivät.
- sen kaupungin nimi, jossa edellisten
erotus on suurin.

SQL:n GROUP BY -rakenne sopii mainiosti kuvaamaasi ongelmaan.

SELECT DISTINCT saatila.paikkakunta, Max(saatila.lampotila) AS Maksimi, Min(saatila.lampotila) AS Minimi, Max([lampotila])-Min([lampotila]) AS erotus
FROM saatila
GROUP BY saatila.paikkakunta
ORDER BY Max([lampotila])-Min([lampotila]) DESC;


Ylläoleva kysely näyttää kaikkien kaupunkien tilanteen. Mikäli haluat näyttää ainoastaan sen kaupungin, jossa ero on suurin, voit joko muuttaa kyselyäsi sopivalla tavalla, esim näin:



SELECT DISTINCT TOP 1 saatila.paikkakunta, Max(saatila.lampotila) AS Maksimi, Min(saatila.lampotila) AS Minimi, Max([lampotila])-Min([lampotila]) AS erotus
FROM saatila
GROUP BY saatila.paikkakunta
ORDER BY Max([lampotila])-Min([lampotila]) DESC;



Eli tuossa siis tuo TOP 1, joka näyttää ainoastaan yhden tulosrivin. Oikeissa tietokannoissa tuo komento on usein jokin muu, esim LIMIT..OFFSET tms.

Mikäli haluat tehdä jonkinlaisen "kuukauden suurimmat vaihtelut"-kyselyn, niin se onnistuu helposti lisäämällä päivämäärärajaus WHERE -määrityksen sisään (joka tosin puuttuu esimerkistä).


Auttoiko yhtään?


ps: Älä käytä ääkkösiä sql:ssa.

Äänestä
  • Kiitos kaunis!

    Vastauksesi oli erittäin kattava ja selvisin ongelmastani sen avulla.

    Juuri kaltaisesi henkilöt kannustavat turvautumaan näihin foorumeihin.

    Kerran vielä, KIITOS!

    Äänestä

  • Kiitos ja kumarrus!

    Vastauksesi oli varsin kattava ja sain ratkaistua ongelmani sen avulla.

    Äänestä

  • Pulassa kirjoitti:

    Kiitos ja kumarrus!

    Vastauksesi oli varsin kattava ja sain ratkaistua ongelmani sen avulla.

    Dear ex-Pulassa,

    Hyvä että asia selvisi noinkin nopeasti. Itse käytän tuontyyppisissä ongelmissa googlen keskusteluryhmähakua. Toimii (lähes) aina. Kaikissa ongelmissa.

    Äänestä

Kommentoi aloitusta


Pulassa kirjoitti:

On säätaulu mihin kerätään eri paikkakuntien säätietoja. Taulussa mm. kentät Säärivi(autonum) Paikkakunta(Text) Lämpötila(num)
Nyt pitäisi saada haku, joka antaa paikkakunnan jonka suurimman ja pienimmän lämpötilan erotus on suurin.

Kiitos!

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu