- sziku69: Fűzzük össze a szavakat :)
- sellerbuyer: Egy teljesen új platformot kapunk! Új korszak kezdődik?
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- sellerbuyer: Milyen laptopot vegyek? Segítek: semmilyet!
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- intecpc: Hogyan készítsük fel a számítógépünket a Windows 11-re? – Lépésről lépésre
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- aquark: Jó platformer játékokat keresek!
- Geri Bátyó: Agglegénykonyha 5 – Edények és konyhai eszközök
Új hozzászólás Aktív témák
-
tm5
tag
válasz
Apollo17hu #5468 üzenetére
Ez talán még jobb, csak annyi kéne még hozzá, hogy adnék egy "minimum rank" értéket a t2 táblához és a query végén ahhoz hasonlítanám a match_rate-et és akkor tovább csökkennne a false pozitiv:
select t1.*, tt.kategoria
from t1
left join
(
select t.*, RANK() OVER(PARTITION BY t.id ORDER BY t.match_rate desc) AS rnum
from
(
select
t1.id
,t2.kategoria
,
(case when ifnull(t1.m1,'*') != ifnull(t2.m1,'*') then 0 when ifnull(t1.m1,'*') = ifnull(t2.m1,'%') then 1 else 0 end) +
(case when ifnull(t1.m2,'*') != ifnull(t2.m2,'*') then 0 when ifnull(t1.m2,'*') = ifnull(t2.m2,'%') then 1 else 0 end) +
(case when ifnull(t1.m3,'*') != ifnull(t2.m3,'*') then 0 when ifnull(t1.m3,'*') = ifnull(t2.m3,'%') then 1 else 0 end) +
(case when ifnull(t1.m4,'*') != ifnull(t2.m4,'*') then 0 when ifnull(t1.m4,'*') = ifnull(t2.m4,'%') then 1 else 0 end) +
(case when ifnull(t1.m5,'*') != ifnull(t2.m5,'*') then 0 when ifnull(t1.m5,'*') = ifnull(t2.m5,'%') then 1 else 0 end) +
(case when ifnull(t1.m6,'*') != ifnull(t2.m6,'*') then 0 when ifnull(t1.m6,'*') = ifnull(t2.m6,'%') then 1 else 0 end) +
(case when ifnull(t1.m7,'*') != ifnull(t2.m7,'*') then 0 when ifnull(t1.m7,'*') = ifnull(t2.m7,'%') then 1 else 0 end) +
(case when ifnull(t1.m8,'*') != ifnull(t2.m8,'*') then 0 when ifnull(t1.m8,'*') = ifnull(t2.m8,'%') then 1 else 0 end) as match_rate
, t1.m1
, t1.m2
, t1.m3
, t1.m4
, t1.m5
, t1.m6
, t1.m7
, t1.m8
from t1 join t2
--order by 1,3 desc;
) t
) tt on t1.id = tt.id and tt.rnum = 1 and tt.match_rate > 0 -
tm5
tag
válasz
Apollo17hu #5468 üzenetére
Hát én valamni ilyesmivel indítanék:
select t.*, ROW_NUMBER() OVER(PARTITION BY t.id ORDER BY t.match_rate desc) AS row_num2
from
(select
t1.id
,t2.kategoria
,
(case when ifnull(t1.m1,'*') != ifnull(t2.m1,'%') then -100 when ifnull(t1.m1,'*') = ifnull(t2.m1,'%') then 1 else 0 end) +
(case when ifnull(t1.m2,'*') != ifnull(t2.m2,'%') then -100 when ifnull(t1.m2,'*') = ifnull(t2.m2,'%') then 1 else 0 end) +
(case when ifnull(t1.m3,'*') != ifnull(t2.m3,'%') then -100 when ifnull(t1.m3,'*') = ifnull(t2.m3,'%') then 1 else 0 end) +
(case when ifnull(t1.m4,'*') != ifnull(t2.m4,'%') then -100 when ifnull(t1.m4,'*') = ifnull(t2.m4,'%') then 1 else 0 end) +
(case when ifnull(t1.m5,'*') != ifnull(t2.m5,'%') then -100 when ifnull(t1.m5,'*') = ifnull(t2.m5,'%') then 1 else 0 end) +
(case when ifnull(t1.m6,'*') != ifnull(t2.m6,'%') then -100 when ifnull(t1.m6,'*') = ifnull(t2.m6,'%') then 1 else 0 end) +
(case when ifnull(t1.m7,'*') != ifnull(t2.m7,'%') then -100 when ifnull(t1.m7,'*') = ifnull(t2.m7,'%') then 1 else 0 end) +
(case when ifnull(t1.m8,'*') != ifnull(t2.m8,'%') then -100 when ifnull(t1.m8,'*') = ifnull(t2.m8,'%') then 1 else 0 end) as match_rate
, t1.m1
, t1.m2
, t1.m3
, t1.m4
, t1.m5
, t1.m6
, t1.m7
, t1.m8
from t1 join t2
--order by 1,3 desc;
) t
de e kőré még kell valami ilyesmi:select t1.*, tt.kategoria
from t1
left join
(
-- ide jon az elozo query
) tt on t1.id = tt.id and tt.rnum = 1 and tt.match_rate != -800
De ez még nem tökéletes. Van benne néhány fal pozitív kategória.Azért szedtem ketté, mert azzal a belső queryvel még kell játszani és finomhangolni a match_rate-et
Jah és remélem nem olyan sok rekord van egyik táblában sem, mert azért a descartes szorzat befigyel rendesen.
Új hozzászólás Aktív témák
Hirdetés
- Lenovo LOQ 15AHP9 - 15.6"FHD IPS 144Hz - Ryzen 5 8645HS - 16GB - 1TB - Win11 - RTX 4050 - 2,5 év gar
- OMEN 17-ck2778ng 17.3" QHD IPS i7-13700HX RTX 4080 32GB 1TB NVMe gar
- iPhone 15 Pro Max 256 GB fekete USA AppleCare+
- Samsung Galaxy S24 Ultra 256GB, Kártyafüggetlen, 1 Év Garanciával
- Eladó Hibás Ayaneo Next Lite 512GB-os kézikonzol!
- Bomba ár! Dell Latitude 5490 - i5-8GEN I 8GB I 256GB SSD I 14" HD I HDMI I Cam I W10 I Gari!
- iPhone 11 Pro Max 256GB Midnight Green -1 ÉV GARANCIA - Kártyafüggetlen, MS3261, 100% Akkumulátor
- Jogtiszta Microsoft Windows / Office / Stb.
- GYÖNYÖRŰ iPhone 14 Pro 256GB Space Balck-1 ÉV GARANCIA - Kártyafüggetlen, MS3545
- BESZÁMÍTÁS! Sony PlayStation 5 Slim 1TB SSD lemezes konzol garanciával hibátlan működéssel
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest