Hirdetés
- CES 2026: izmos tápokat villantott a be quiet! Las Vegasban
- CES 2026: AI-fókuszra kapcsolnak az Acer Swift, Aspire és Nitro notebookok
- CES 2026: Kibújtak végre az üveg mögül az új MSI Prestige notebookok
- CES 2026: madzagmentes egér és headset az Acer névjegyével
- CES 2026: valóságos képkockagenerálók lesznek a modernebb GeForce-ok tavasszal
- Kormányok / autós szimulátorok topikja
- OLED TV topic
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- Milyen notebookot vegyek?
- CES 2026: felcsavarta az AI-t az AMD, de örülhetnek a játékosok is
- Sony MILC fényképezőgépcsalád
- HiFi műszaki szemmel - sztereó hangrendszerek
- A legrosszabb CPU-k – az ExtremeTech szerint
- Bambu Lab 3D nyomtatók
- AMD Navi Radeon™ RX 7xxx sorozat
Új hozzászólás Aktív témák
-
tm5
tag
válasz
Apollo17hu
#3451
üzenetére
Kb. fél éve nekem is volt egy ehhez nagyon hasonló problémám és ott is a 12c-re való átállás okozta a teljesítmény problémát.
Zeratul megoldása nekem is beugrott (mármint a hintek használata), csak nálunk az tilos
és hozzá vagyok szokva, hogy ilyenkor át kell írnom a query-t.Amúgy ahol lehet én is szétszedem subquery-kre a feladatot, mert akkor magam is jobban értem, hogy mit csinálok. Elég sok 4-800 soros query-vel dolgozom, másképp nem is érteném meg őket

-
tm5
tag
válasz
tvse1995
#3351
üzenetére
esetleg így: (adatok nélkül nem tudtam kipróbálni, de így tünt a legszimpatikusabbnak)
Select legfi.berlo_kulcs,
legfi.nev,
legfi.szuletesi_ido,
jarmukolcsonzes.kolcsonzes_kulcs,
jarmukolcsonzes.kiadas,
jarmukolcsonzes.visszavetel,
jarmukolcsonzes.jarmu_kulcs,
jarmu.marka,
jarmu.tipus
From
(Select berlo_kulcs
From ( Select Rank() Over (Partition By berlo_kulcs Order By szuletesi_ido Desc) rn, berlo_kulcs From berlo) Where rn In (2,3)) legfi
,jarmukolcsonzes
,jarmu
Where legfi.berlo_kulcs = jarmukolcsonzes.berlo_kulcs(+)
And jarmu.jarmu_kulcs(+) = jarmukolcsonzes.jarmu_kulcs -
tm5
tag
válasz
Petya25
#3201
üzenetére
Ajaj, akkor elég gyenge az a szerver... azért 2*600k-t joinolni nem kéne problémának lenni manapság.
Az a baj, hogy sortolni muszáj lesz, hogy ki tudd választani a dátum alapján az aktuális árat, Esetleg ha 2 dátum oszlop lett volna az ár táblában akkor egy "eladás_dátum beween tol and ig" kifejezéssel ki lehetett volna kapkodni a megfelelő sorokat sort nélkül is. -
-
tm5
tag
válasz
Ursache
#3153
üzenetére
Hát inner join esetén csak azok a rekordok jönnek vissza amelyek mindkét táblában szerepelnek.
Szerintem inkább egy left outer join kellene ahol a baloldali tábla (a) olyan, hogy minden ügyfél benne van:SELECT *
FROM a
LEFT OUTER JOIN b ON (a.id = b.id)Ha pedig olyan a két tábla, hogy mindegyikben lehet olyan ügyfélrekord, ami nincs a másikban, akkor a LEFT helyére FULL-t kellene írni.
-
tm5
tag
válasz
concret_hp
#3091
üzenetére
Hát egyszer muszáj lesz végignyalni az alkérdést, hogy megtalálja a minimumot, de mondjuk talán a sort-ot meg tudod úszni:
Tedd bele az alkérdésbe 8. oszlopnak a következőt:
min(egyikmezo) over (partition by 1) as min_ertekés akkor a fő select-ben beírhatod a where-be hogy:
alkerdes.egyikmezo = alkerdes.min_ertek -
tm5
tag
lehagytam egy záró zárójelet az NVL-es sor végéről, nem amiatt kapsz hibát? Mert amúgy szerintem ennek működnie kellene.
Amúgy nem lenne gond a mutatnál egy példát az adatokra, hogy mi van az egyes táblákban és hogy mi az elvárt select eredmény. 2 ember elég, egyiknél van kmh a másiknál nincs.
-
tm5
tag
válasz
bambano
#2987
üzenetére
select cc.szolgaltatas, COUNT(*)
from
(
select
customer_id,
row_number() over (partition by customer_id order by service_type_id) rnum,
case
when COUNT(*) over (partition by customer_id) = 2 then 'Mindketto'
when service_type_id = 11 then 'Internet'
when service_type_id = 13 then 'TV'
end szolgaltatas
from Table_1
) cc
where rnum=1
group by cc.szolgaltatasha egy sorba akarod az eredményt akkor viszont ahogy lejjebb írták, (SUM(DECODE...stb)), de a subquery ugyanaz.
-
tm5
tag
válasz
Peter Kiss
#2981
üzenetére
jaja, abszolút egyetértek...
-
tm5
tag
válasz
lordring
#2979
üzenetére
Szóval valami ilyennek kéne lenni:
SELECT
T0.[ItemCode], T0.[Dscription], T0.[Quantity], T0.[Price], T0.[Currency], T0.[LineTotal], T0.[TotalFrgn],
T2.[CardName], T0.[ShipDate], T1.[CardCode]
FROM CSI1 T0
INNER JOIN OITM T1 ON T0.ItemCode = T1.ItemCode
INNER JOIN OCRD T2 ON T1.CardCode = T2.CardCode
WHERE
T0.[ShipDate] >=[%0]AND T0.[ShipDate] <=[%1] AND T2.CardName = '[%3]'
UNION ALL
SELECT
0,'Total:', SUM(LineTotal), SUM(TotalFrgn), NULL, NULL, NULL
FROM
(
SELECT
T0.[ItemCode], T0.[Dscription], T0.[Quantity], T0.[Price], T0.[Currency], T0.[LineTotal], T0.[TotalFrgn],
T2. [CardName], T0.[ShipDate], T1.[CardCode]
FROM CSI1 T0
INNER JOIN OITM T1 ON T0.ItemCode = T1.ItemCode
INNER JOIN OCRD T2 ON T1.CardCode = T2.CardCode
WHERE
T0.[ShipDate] >=[%0]AND T0.[ShipDate] <=[%1] AND T2.CardName = '[%3]'
)Mindamellett az a véleményem, általában a Total sort nem itt kéne számolni, hanem a kliens oldalt, hisz valszeg a megjelenítéskor úgyis másképp lesz formázva.
-
tm5
tag
Valójában nem értem, hogy niért lenne rá szükség. Van valami "zajos" elem valahol a két végpont közötti csatornában? Azért normálisan azt várnám el, hogy se az Oracle se az MSSQL ne torzítsa az adatot az átvitel során.
Egy dolog jut az eszembe ami problémát okozhat, az pedig az eltérő db character set encoding. Bár azért van az Oracle Gateway, hogy ezeket kezelje.
Én használtam Gateway-t bő 10 éve és ahogy emlékszem már akkor sem volt vele semmi gond.
Vagy az a gond, hogy valaki valahol belenyúlhat az adatokba?
-
tm5
tag
Én is LAG-gal csinálnám amire még lenne téve egy CASE WHEN, hogy
CASE
WHEN val = LAG(val) OVER ... THEN 0
ELSE 1
END xez menne egy subqueryben és erre már csak egy SUM(x) kell.
Nagyon szépen működik a LAG, nekem a multkor a legutolsó értékváltozás dátumát kellett meghatározni és így csináltam.
-
tm5
tag
válasz
DopeBob
#2939
üzenetére
A neten találtam, valszeg más szeparátorral is működhet, csak nem vagyok magam nagyon otthon a regexp-es kifejezésekben:
select REGEXP_SUBSTR(s, '[^.]+', 1, 1) a,
REGEXP_SUBSTR(s, '[^.]+', 1, 2) b,
REGEXP_SUBSTR(s, '[^.]+', 1, 3) c,
REGEXP_SUBSTR(s, '[^.]+', 1, 4) d
from (select 'hello.how.are.you' s from dual) -
tm5
tag
válasz
pittbaba
#2907
üzenetére
Bár látom, hogy ez egy régi feladvány, de mivel nem láttam rá megoldást azért így utólag csak javasolnék valamit:
Szóval minden ami a apro_category_customs-ből jönne azt 1 subquery-be menne amire rékerülne egy PIVOT.
Ez egy Oracle-s példa rá.Ennek illene sokkal gyorsabbnak lennie és a query is szebb lenne.
-
tm5
tag
válasz
Apollo17hu
#2925
üzenetére
Hát az exact match-eket ugye elég hamar megkaphatod, de közelítő összehasonlítások már más tészta. Az IBM pl. nagyon nagy összegért adja bérbe cégeknek azt a szoftverét ami ezt csinálja. De még e fölött is általában működdik egy emberi csoport aki, egy bizonyos % fölött kézzel dönti el, hogy match, false positive vagy false negative az egyezés.
Valszeg valmilyen szintű közelítést össze lehet rakni, A kérdés az az, hogy a business mennyire tolerálja, hogy ha a hibás matchelés miatt nem érik el az ügyfelet.
Pl. Váci u. az Váci utca vagy Váci út?
Új hozzászólás Aktív témák
- Nintendo Switch 2
- Kormányok / autós szimulátorok topikja
- BestBuy topik
- Villanyszerelés
- OLED TV topic
- Tesla topik
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- Le Mans Ultimate
- CES 2026: Íme, a Lenovo és Motorola foci vb-s különkiadásai
- További aktív témák...
- Latitude 5520 27% 15.6" FHD IPS érintő i7-1185G7 MX450 16GB 512GB NVMe magyar vbill ujjolv gar
- 9. generációs Gamer félkonfig, Asrock B365, i5-9400, 16GB, 256GB
- HP EliteDesk 800 G3 TWR i5-7500, 8GB, 256GB
- Dell Optiplex 3070 TWR i5-9400, 8GB, 256GB, WIN11
- SAMSUNG (SP-LSP7TFAXXH) 120" DLP LÉZER TV ! MAX 300CM !!!! AKCIÓ!
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
és hozzá vagyok szokva, hogy ilyenkor át kell írnom a query-t.


