Ú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
- Xiaomi 15 Ultra - kamera, telefon
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Genshin Impact (PC, PS4, Android, iOS)
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Tesla topik
- Villanyszerelés
- Napelem
- Kutya topik
- Honor Magic8 Lite - a félig sikerült bűvésztrükk
- Milyen légtisztítót vegyek?
- További aktív témák...
- Azonnali készpénzes Apple Macbook Air felvásárlás személyesen / csomagküldéssel korrekt áron
- GYÖNYÖRŰ iPhone 12 mini 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS4207
- iPhone 12 Mini 128GB White -1 ÉV GARANCIA - Kártyafüggetlen, MS4211, 94% Akksi
- BESZÁMÍTÁS! Asus Z170M i7 6700 16GB DDR4 512GB SSD GTX 1070 Ti 8GB Rampage SHIVA ZALMAN 500W
- ÁRGARANCIA!Épített KomPhone i5 10400F 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs

