Hirdetés
- Épített vízhűtés (nem kompakt) topic
- Milyen videókártyát?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Milyen házat vegyek?
- Fejhallgató erősítő és DAC topik
- Milyen kompakt digitális fényképezőgépet?
- Ilyen olcsó sem volt még egy Apple notebook
- Milyen belső merevlemezt vegyek?
- Házimozi belépő szinten
- E-book olvasók
Új hozzászólás Aktív témák
-
nyunyu
félisten
válasz
Szancsó
#4646
üzenetére
Én kiemelném egy CTEbe az A, B összege oszlopokat, és kapna egy sorszámot összeg szerint csökkenő sorrendben, majd következő lépésben ebből válogatnám le a sorszám<=5-öt ("top 5"), és hozzáunióznám a szumma(B összeg)-et, ahol sorszám>5.
Így az eredeti táblát csak egyszer kell végigolvasni, második lépésben uniót képző 2 select már a memóriában lévő párszáz-ezer soros aggregátumból dolgozik, minimális többletköltséggel.
Valahogy így:
with summa as (
select a,
sum(b) sum_b,
row_number() over (partition by a order by sum(b) desc) rn
from tabla5
group by a),
top5_summa as (
select a,
sum_b,
rn
from summa
where rn<=5
union
select 'Többi' as a,
sum(sum_b) as sum_b,
6 as rn
from summa
where rn>5)
select a,
sum_b
from top5_summa
order by rn;Nem tudom, Firebird ismeri-e ezt a szintaxist, SQL Server kb. 2005 óta igen, meg az Oracle 11 alatt is működik.
Új hozzászólás Aktív témák
- Samsung kuponkunyeráló
- Spórolós topik
- Mozgásban a Forza Horizon 6
- Arc Raiders
- Épített vízhűtés (nem kompakt) topic
- MIUI / HyperOS topik
- Milyen videókártyát?
- iPhone topik
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- További aktív témák...
- Számítógép - Gamer PC! Csere-Beszámítás! R5 5600G / RTX 4060 / 32GB DDR4 / 1TB SSD
- Eredeti DELL 240W töltők (LA240PM160)
- GYÖNYÖRŰ iPhone 12 mini 256GB Red -1 ÉV GARANCIA -Kártyafüggetlen, MS3627
- HP EliteOne 800 G4 All-in-One i5-8500 16GB 512GB 23.8" Érintőkijelző!! 1 év garancia
- HIBÁTLAN iPhone 13 Pro 256GB Sierra Blue-1 ÉV GARANCIA - Kártyafüggetlen, MS4662, 90% AKKSI
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

