logo

Vs Missä -lauseke SQL:ssä

Ero SQL:n having- ja where-lauseen välillä on, että where-lause cann o t voidaan käyttää aggregaattien kanssa, mutta have-lausetta voidaan käyttää.

The missä lauseke toimii rivin tiedoissa, ei koostetuissa tiedoissa. Tarkastellaanpa alla olevaa taulukkoa 'Marks'.



Opiskelijakurssin pisteet

c1 40

c2 50



b c3 60

d c1 70

e c2 80



Harkitse kyselyä

SELECT>Student, Score FROM Marks WHERE Score>=40>>

Tämä valitsisi tiedot rivi riviltä.

The joilla on lauseke toimii aggregoiduissa tiedoissa.

Esimerkiksi alla olevan kyselyn tulos

SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student>

Opiskelija yhteensä

a 90

b 60

d 70

ja 80

Kun haemme yllä olevaa kyselyä, saamme

SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student>

HAVING>total>70>

Opiskelija yhteensä

a 90

ja 80

Huomautus: Se ei ole ennalta määritetty sääntö, mutta useissa SQL-kyselyissä käytämme WHERE-sanaa ennen GROUP BY:tä ja HAVING-sääntöä GROUP BY:n jälkeen. Missä-lause toimii a esisuodatin missä kuin ottaa kuin a postisuodatin.