-
Fototrend
Új hozzászólás Aktív témák
-
vz12
tag
válasz
bandi0000 #14927 üzenetére
TEMP tábla ugye használható?
Az alábbi ötletem van, a szintaktikát a környezetedre kell majd konkretizálni.(1) CREATE TABLE temp AS
(SELECT MIN(pld,rpld) pld, MAX(pld,rpld) rpld, qtt FROM input_table)
(2) CREATE TABLE celtabla AS
(SELECT pld, rpld, SUM(qtt) qtt FROM temp GROUP BY pld,rpld ORDER BY pld, rpld)
(3) DROP TABLE temp
-
Drizzt
nagyúr
válasz
bandi0000 #14927 üzenetére
Hát, ha befér az összes a memóriába, akkor:
1. Csinál egy mapet, amiben a kulcs egy id pár(pId, rPid), az érték meg maga a sor lesz.
2. Menj végig az összes DB soron. Nézd meg, hogy az adott sor (rPid,pId) párosával szerepel-e már elem az 1-es pont map-jében. Ha igen, akkor update-eld meg a hozzá tartozó sort, s valahogy jelöld meg, hogy a db-be is ki kell majd írni(pl. a kulcsát beteszed egy toUpdate Set<pId, rPid> halmazba). Az éppen olvasott sort meg rakd bele egy toDelete Set<pId, rPid>-be. Sőt, még egyszerűbb egy toUpdate Set<id> setet használni inkább.
3. Amikor végigértél az értékeken, akkor már csak annyi a dolgod, hogy a toUpdate elemeire tolsz egy batch update-et, a toDelete értékeivel jelzett sorra meg egy batch delete-et.Viszon ahogy elnézem a db sorodat... Nem kell a cId-t is belevenni a buliba, s hármasokat keresni inkább a párok helyett?
-
pelyib
tag
válasz
bandi0000 #14927 üzenetére
SQL (bar eleg koki vagyok benne):
left join onmagara (pid = rpid), sum a qtt-re (left join miatt itt figyelni kell, ha nincs masik sor, akkor default 0) group by cid
Ez csak akkor mukodik ha 2 sorod van (de mondom, koki vagyok hozza!)Vagy a sum_qtt-t subselect-tel is meg lehet oldalni. Ez tuti mukodik tobb sorral is.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- ÚJ! Intel Core Ultra 9 285K 24-Core 3.7GHz LGA1851
- Makulátlan MacBook Air M1 92%-os Akkuval + Extra Tokkal Eladó!
- X13 Gen4 13.3" FHD+ IPS i7-1365U 16GB 512GB NVMe ujjlolv gar
- Kezdő Gamer PC MSI RTX 2060 OC / i3-10100F / 16GB DDR4 / Új MSI ház
- Precision 5690 16" FHD+ IPS Ultra 7 165H RTX 1000 Ada 32GB 1TB NVMe ujjlolv IR kam gar
- Xiaomi Redmi Note 11 128GB, Kártyafüggetlen, 1 Év Garanciával
- Akcio! Csere-Beszámítás! Gigabyte Vision RTX 3070Ti 8GB GDDR6X OC Videokártya!
- Bomba ár! HP Elitebook 850 G3 - i7-6GEN I 16GB I 256GB SSD I RadeonI 15,6" FHD I Cam I W11 I Gari!
- Bomba ár! Lenovo IdeaPad 330S-15IKB - i5-8G I 8GB I 256SSD I 15,6" FHD I HDMI I Cam I W11 I Gari!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7700X 32/64GB RAM RTX 4070Ti Super GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest