» »

Sql poizvedba

Sql poizvedba

BRBR ::

f1     f2   f3

sdf    1    a 
krneki 2    a
alfa   3    a 

sd     1    b
dfg    2    b
krneki 3    b 
beta   4    b


Tole je v eni tabeli. Poiskat je treba vse f1 kjer je f2 >= (f2 ki je zraven 'krneki')
Torej pričakovan rezultat:

krneki 
alfa
krneki
beta
  • spremenil: BRBR ()

am-on ::

Nisem 100% prepričan če deluje, upam pa da bo vsaj malo v pomoč.

SELECT f1 FROM tabela WHERE f2 >= any (SELECT f2 FROM tabela WHERE f1 like "krneki")

klemenSLO ::

a ni takole najbolj enostavno:
select f1 
from tabela
where f2 >= 2
Life is not measured in minutes, but in MOMENTS...

sajmon ::

BRBR je izjavil:


f1 f2 f3

sdf 1 a
krneki 2 a
alfa 3 a

sd 1 b
dfg 2 b
krneki 3 b
beta 4 b


Tole je v eni tabeli. Poiskat je treba vse f1 kjer je f2 >= (f2 ki je zraven 'krneki')
Torej pričakovan rezultat:


krneki
alfa
krneki
beta


A ni med rezultati tudi vrstica
dfg 2 b

FTad ::

se strinjam z odgovorom od klemenSLO, in hkrati tudi mene zanima, če je med rezultati "dfg" oz zakaj ne.

BRBR ::

"dfg" ni tam ker je zraven še f3.

Torej iz vseh skupin f3, kje je v vsaki skupini f2 >= (f2 ki je zraven 'krneki')

krneki0001 ::

nabereš f2 kjer je f1 enak 'krneki' in pogrupiraš po f2 in f3 da dobiš 2 polji in potem nabereš iz vsake skupine grupiranja vse, ki so po f2 enaki ali večji od f2, ki ima zraven 'krneki'

nekaj podobnega temu:
SELECT B.f2,COUNT(*) AS CNT  
FROM 
(
select F1,F3 from Test
where F2='B'
 )AS A
    INNER JOIN  Test AS B
   ON A.F1 = B.F1 AND  A.F3 = B.F3
GROUP BY B.F2 
ORDER BY CNT DESC 

Zgodovina sprememb…

krneki0001 ::

Mislim daq je rešitev v tej knjigi:
Joe Celko's SQL for Smarties: Advanced SQL Programming

urli ::

Mogoče takole?

krneki0001 ::

Ne, dfg ne sme biti zraven.
grupiraj še po f3 in za vsak f3 izberi vse ki so večji ali enaki f2 ki ima v f1 krneki.

zgubar ::

čist enostavno

select x.f1 from tblx x
left join tblx y on x.f3 = y.f3
where y.f1 = 'krneki'
and x.f2 > = y.f2

zgubar ::

Nisi pa nič povedal, če je v tabeli lahko samo en 'krneki' za vsako grupo f3?
Če je vedno samo en, potem je to to, če jih je lahko pa več potem moraš pa povedat katerega je potrebno upoštevati pri rezultatu?


Vredno ogleda ...

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

sql

Oddelek: Programiranje
61020 (725) Miha 333
»

SQL programiranje

Oddelek: Programiranje
81193 (883) slitkx
»

db poizvedba

Oddelek: Programiranje
151290 (924) WarpedGone
»

mysql, insert, values, select

Oddelek: Programiranje
91845 (1672) slosi
»

MySQL Query Vprašanje

Oddelek: Izdelava spletišč
153228 (2993) overlord_tm

Več podobnih tem