Ú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
- Xiaomi 17 Ultra - jó az optikája
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Kormányok / autós szimulátorok topikja
- Diablo IV
- Konzol Screenshot
- Hosszú premier előzetest kapott az Arknights: Endfield
- One mobilszolgáltatások
- AMD Navi Radeon™ RX 9xxx sorozat
- Azonnali fotós kérdések órája
- Vicces képek
- További aktív témák...
- MacBook Pro 16" M1 Max 64GB / 2TB / 27%-os ÁFÁS
- Telefon felvásárlás!! Samsung Galaxy A70/Samsung Galaxy A71/Samsung Galaxy A72
- BESZÁMÍTÁS! GIGABYTE RTX 3080 Gaming OC videokártya garanciával hibátlan működéssel
- BESZÁMÍTÁS! Gigabyte G1.Sniper Z97 chipset alaplap garanciával hibátlan működéssel
- Gamer PC-Számítógép! Csere-Beszámítás! Intel Ultra 7 265KF / RTX 5070 / 32GB DDR5 / 1TB Nvme SSD
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
