Olisin kysellyt SQL ohjelmoinnista.Tietääkö kukaan mikä kysely olisi oikein jos kysytään että laadi SQL kysely joka laskee kirjojen kokonaismäärän varastossa.
Olen yrittänyt laittaa
SELECT *
FROM "varasto"
mutta tämä ei mene läpi
onko johonkin kohtaan kirjoitettava "lukumaara" ja onko kyseessä ehkä SUM tai WHERE lauseke
SELECT *
FROM "varasto" "lukumaara" ei myöskään tuota tyydyttäävää lopputulosta
Olen yrittänyt laittaa
SELECT *
FROM "varasto"
mutta tämä ei mene läpi
onko johonkin kohtaan kirjoitettava "lukumaara" ja onko kyseessä ehkä SUM tai WHERE lauseke
SELECT *
FROM "varasto" "lukumaara" ei myöskään tuota tyydyttäävää lopputulosta
Vastaukset 21
Vanhimmat
Riippuu ainakin tietokannasta, sen sijainnista, sekä tietokannan kentistä, mitä SQL-kyselyyn pitää kirjoittaa.
SELECT SUM(column_name)
FROM table_name
WHERE condition;
Täällä asia niin hyvin kerrottuna ettei paremmasta väliks:
https://www.w3schools.com/sql/sql_count_avg_sum.asp
Varasto-taulun kaikki rivit saat laskettua SELECT COUNT(*) FROM varasto vaan onko varasto-taulussa muutakin kuin kirjarivejä tai esim rivillä kirjojen lukumäärä?
Eipäs kun näin:
SELECT COUNT()
FROM Varasto;
Jos kirjoitan
SELECT *
FROM "varasto"
Niin vastaus on vihreällä värillä:
Your SQL statement executed successfully COUNT 9
MUTTA
Your SQL statement produced wrong result (punaisella värillä)
Expected result is 4091
SELECT *
FROM "varasto";
En ymmärrä koska valitaan kaikki varastosta mutta tulos ei anna 4091 vaan 9
Tietokanta KIRJA:
kirjaid integer NOT NULL
nimi character varying 32 NOT NULL
tekijaid integer
kustantajaid integer
sivuja integer
hinta double precision
julkaisupvm date
Tetokanta Kirjailija:
tekijaid integer NOT NULL
sukunimi character varying 32 NOT NULL
etunimi character varying 32 NOT NULL
Tetokanta Kustantaja:
kustantajaid integer NOT NULL
nimi character varying 32 NOT NULL
osoite character varying 32
postinro character varying 32
toimipaikka character varying 32
Tietokanta Varasto:
varastoid integer NOT NULL
kirjaid integer
lukumaara integer NOT NULL
SELECT lauseke jossa - * / niin FROM ja WHERE
mutta tämän pitäisi olla tosi simppeli mutta ei vain onnistu
Eli onko kyseessä SELECT * vai COUNT vai SUM lauseke ja pitääkö olla mukana myös lukumaara
Tietysti pitää mukana olla, miksi edes kyselet sellaista.
Mitkä on kantapalvelimen suojaukset? ei sieltä mitä vaan voi kysyä, kun lentää pihalle, haitta yhteytenä.
SELECT COUNT()
FROM Varasto;
Löytyihän se kaivattu tietokanta-schema (taulut ja niiden kentät) eli nuo kirja, kirjailija, kustantaja ja varasto on tietokannan tauluja ja kysytty select taulusta varasto on yksinkertaisesti:
select sum(lukumaara) from varasto
koska siinä kaikki on kirjoja, tässä ei tarvita where-lauseketta.
Mikä olisi tämän ratkaisu:
Laadi SQl-lause, joka tulostaa Kirja taulusta sellaisten kirjojen keskihinnan, jotka maksavat yli 20 mutta alle 30.
Olisiko tännepäin kuten:
SELECT AVG("hinta") FROM ....... >20 AND <30;
Lasketaanko tässä nyt nimekkeiden määrää vai kaikkien kirjojen yhteismäärää, sillä tietokannan mukaanhan yhtä nimekettä voi olla useampi kappale.
hrmm eiköhän tuon parilla piuhalla ja aimo kronksautuksella saa aikaan
Se menikin läpi pelkällä varastolla eikä kirjaa tarvittu mainita ollenkaan eli
SELECT SUM("lukumaara") FROM varasto; eli pelkästään varastossa oli tieto kirjojen lukumäärästä.
Joskus yksinkertainen on välillä vaikeaa hoksata.
Kiitos hgfdsasdf koska nyt huomasin kirjoituksesi ja olit oikeassa.
Vain homot käyttää 70-luvun fossiilista muinaisjäännettä nimeltä SQL. NoSQL on tämänpäivän trendi ja tulevaisuudessa kukaan ei enää käytä mitään muuta kuin sitä.
Tuo SQL käyttäjien seksuaalinen suuntautuminen tuskin pitää paikkaansa, mutta muilta osin hyvinkin mahdollista.