» »

[Sql] Vprasnji

[Sql] Vprasnji

piki12 ::

Pozdravljeni, zanima me kaj je z naslednjo poizvedbo narobe:
SELECT village, population
FROM naselje
GROUP BY population
HAVING COUNT(*) > 1;

a. Atribut 'village' ne sme biti v SELECT delu stavka, ker ni skupinski atribut.
b. COUNT(*) ne more biti v HAVING delu, ker se COUNT(*) ne nahaja v SELECT delu stavka.
c.
Ni napak.
d. Atribut 'population' ne sme biti v SELECT delu stavka, ker ni skupinski atribut.
e. Manjka WHERE del stavka, ki je potreben.


jaz bi rekel da da drži a, naj me prosim kdo potrdi.

Tukaj pa se ne morem odločit:


SELECT i.pid, i.player, COUNT(*)
FROM igralec i JOIN naselje n USING(pid)
GROUP BY i.pid, i.player ali bi samo dal i.pid;

Govorimo o standardu, sicer glede da mysql izvede kakorkoli ni potrebno da je po standardu, vendar ok tole naj bo po standardu.
Naj prosim kdo pomaga,


lp
piki
  • spremenilo: piki12 ()

darkolord ::

Zakaj pa enostavno ne poizkusiš?

piki12 ::

jah druga je po moje vseeno, prva pa ne vem :))

drola ::

Pri prvem si pravilen odgovor ugotovil že sam, pri drugem pa je odvisno od tega kaj i.player in i.pid pomenita in kaj sploh hočeš naredit.
https://drola.si

piki12 ::

Baza je naslednja:
#aliansa(aid, alliance)
#igralec(pid,player,#tid,#aid)
#naselje(id, vid, village, x, y, population, #pid)
#pleme(tid, tribe)

Naredit pa: Za vsakega igralca želimo izpisati število njegovih naselij.

win64 ::

SELECT i.pid, i.player, COUNT(*)
FROM igralec i JOIN naselje n USING(pid)
GROUP BY i.pid, i.player ali bi samo dal i.pid


V tem primeru potrebuješ oboje v group by: i.pid in i.player.

Zgodovina sprememb…

  • spremenil: win64 ()

Tody ::

Pri group by moraš vse kar imaš v selectu dat tudi v group by edina izjema so postavke, ki imajo funkcije zdraven, torej count, max, min, avg itd...

Torej pri prvi nalogi moreš dodati v group by ali izbrisati iz selecta

Isto pri drugi, nalogi, ki je pa že v začetku grdo narejena :)

piki12 ::

Hvala, sej se mi je dozdeval, da je tako sam nisem bil 100%, to so kvizi kjer je škoda točke izgubljat ;), mysql ni točen, pa kar naredi, in kar nastane nastane :S

Tody ::

Vsaj na Oracle platformi teh stavkov nebi mogel izvest. Tko da bi vrjetno zvedel tam :)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Kje gledati 4. sezono Sherlocka?

Oddelek: Loža
264365 (3077) Phantomeye
»

SQL poizvedba

Oddelek: Programiranje
163065 (2410) awy
»

Netflix se opravičuje za podražitve, izposojo DVDjev prenaša na hčerinsko podjetje

Oddelek: Novice / Omrežja / internet
84190 (3655) techfreak :)
»

Pomoč pri SQL

Oddelek: Programiranje
5849 (651) gokky
»

iPlayer gre v svet

Oddelek: Novice / Ostalo
113203 (2607) PrimozR

Več podobnih tem