Új hozzászólás Aktív témák
-
nyunyu
félisten
Mármint sokkal egyszerűbb, mint ügyfelenként meghatározni az utolsó előfizetési dátumot, és az ahhoz tartozó rekordot visszakeresni az előfizetés táblában, hogy utána joinolhassam az előfizetőhöz:
select u.*, s.status
from users u
left join (
select *
from subscription
where (customer_id, createdate) in (
select customer_id, max(createdate)
from subscription
group by customer_id) s
on s.customer_id = u.customer_id;(Tényleg, Oraclen kívül van más olyan DB is, ami támogatja a sokoszlopos IN / NOT IN műveleteket?
Ha jól rémlik, ez a szintaxis nincs szabványosítva)Valószínűleg ablakozós max() függvénnyel is lehetne írni, és akkor nem kellene a group by köré írt külső query:
select u.*, s.status
from users u
left join (
select *
from subscription
where createdate = max(createdate) over (partition by customer_id)
) s
on s.customer_id = u.customer_id;Talán így a legrövidebb a kód.
Új hozzászólás Aktív témák
- Prémium PC házak akár 20-40% kedvezménnyel eladók garanciával, számlával! Upd. 03.26
- Honor Magic6 Lite / 8/256GB / Kártyafüggetlen / 12Hó Garancia
- Apple iPhone 11 128 GB Lila 1 év Garancia Beszámítás Házhozszállítás
- AKCIÓ! Apple Watch Ultra 2 49mm Cellular okosóra garanciával hibátlan működéssel
- REFURBISHED és ÚJ - Lenovo ThinkPad 40AY Universal USB-C Dock
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
