- Honor 90 - modellalkat
- Samsung Galaxy S10e - esszenciális
- Samsung Galaxy Z Fold4 - egyre megy, honnan nézed
- Olyan telefon lett az idei foci EB hivatalos mobilja, ami nem kapható Európában
- Spanyolországban kezd a Vivo V40 5G és V40 Lite 5G
- MIUI / HyperOS topik
- Samsung Galaxy Watch4 és Watch4 Classic - próbawearzió
- uleFone Power
- Meater 2 Plus - medium rare
- iPhone topik
Hirdetés
-
Elindíthatja Kínában az FSD tesztjét a Tesla
it Sanghaj 10 Tesla jármű számára engedélyezte a tesztet, így előkészíthetik az FSD kínai indulását.
-
Final Fantasy XIV Online - Befutott a Dawntrail utolsó előzetese
gp Jövő hónap második napján érkezik a kiegészítő, az előrendelők azonban már június végén belevághatnak az új kalandokba.
-
Olyan telefon lett az idei foci EB hivatalos mobilja, ami nem kapható Európában
ma Folytatódik a Vivo és az UEFA együttműködése, a készülékválasztás megkérdőjelezhető.
Új hozzászólás Aktív témák
-
nyunyu
félisten
válasz
Fundiego #3550 üzenetére
Önmagával left outer joinnal kiszűrni a "duplikációkat"?
Valami ilyesmi Oracleben:
select t1.*
from tabla t1, tabla t2
where t1.c=t2.b (+)
and t2.b is null;Vagy szabványos szintaxissal:
select t1.*
from tabla t1
left join tabla t2
on t1.c=t2.b
where t2.b is null;[ Szerkesztve ]
Hello IT! Have you tried turning it off and on again?
-
Apollo17hu
őstag
válasz
Fundiego #3567 üzenetére
Szélsőséges esetben előfordulhat olyan holtverseny is, ahol két versenyző az összes sportágat tekintve azonos helyezésekkel rendelkezik. Ekkor csak pénzfeldobás (--> random szám generálás) dönthet. Vagy létrehozol egy külön táblát, amiben a fair-play értékeket vezeted.
Visszatérve a problémádhoz talán megoldás lehetne, ha játékosonként a játékosok helyezéseit sorbarendezve, összefűzve letárolnád, és ennek a minimumát vennéd a helyezések minimuma helyett. Pl.:
egyik játékos helyezései:
1, 2, 2, 4, 5, 5, 5
-->1224555
másik játékos helyezései:
1, 2, 3, 3, 3, 3, 3
-->1233333
Oracle-ben ehhez a listagg() függvényt tudod használni. Valahogy így:
listagg(helyezes) WITHIN GROUP (ORDER BY helyezes) OVER (PARTITION BY jatekos)
[ Szerkesztve ]
-
nyunyu
félisten
válasz
Fundiego #3600 üzenetére
Ablakozó függvénnyel beszámozod a pilótánkénti helyezéseket, majd leválogatod, melyik lett az első, második, harmadik?
Oracle alatt valami ilyesmi lenne:
with eredmeny
as (select id,
ev,
vegeredmeny,
pilota,
pont,
row_number() over (partition by ev, pilota order by vegeredmeny, id) eredmeny
from futam)
SELECT e.pilota,
SUM( e.pont ),
e1.vegeredmeny er1,
e2.vegeredmeny er2,
e3.vegeredmeny er3,
e3.vegeredmeny er4
FROM eredmeny e
join eredmeny e1
on e1.ev=e.ev
and e1.pilota=e.pilota
and e1.eredmeny=1
join eredmeny e2
on e2.ev=e.ev
and e2.pilota=e.pilota
and e2.eredmeny=2
join eredmeny e3
on e3.ev=e.ev
and e3.pilota=e.pilota
and e3.eredmeny=3
join eredmeny e4
on e4.ev=e.ev
and e4.pilota=e.pilota
and e4.eredmeny=4
WHERE e.ev = 2017
GROUP BY e.pilota,
e1.vegeredmeny,
e2.vegeredmeny,
e3.vegeredmeny,
e4.vegeredmeny
ORDER BY SUM( e.pont ) DESC;[ Szerkesztve ]
Hello IT! Have you tried turning it off and on again?
-
DS39
nagyúr
válasz
Fundiego #3761 üzenetére
Így meg lehetne oldani:
SELECT
ev,
COUNT(CASE WHEN vegeredmeny='1' AND Karosszeria='Ferrari' then datum ELSE NULL END) első,
COUNT(CASE WHEN vegeredmeny='2' AND Karosszeria='Ferrari' then datum ELSE NULL END) második
FROM futam
GROUP BY eva distinct-et a case elé lehetne írni, de nem tudom most kipróbálni, hogy helyes a szintaktika.
[ Szerkesztve ]
-
nyunyu
félisten
-
DS39
nagyúr
válasz
Fundiego #3782 üzenetére
szerintem így:
$sql = "
SET @rank=0;
select @rank:=@rank+1 AS rank, s.* FROM
(
SELECT gyumolcs, sum(mennyiseg)
FROM gyumolcs Where ev='2016'
group by gyumolcs
ORDER BY sum(mennyiseg) DESC
) s";
$result = mysqli_query($conn, $sql) or die("Bad Query: $sql");
tehát egy változóba mehet az egész.
+ gyors keresés alapján a második paraméter lehet csak az sql, a harmadik opcionális és nem az.
mysqli_query(connection,query,resultmode);
[ Szerkesztve ]
-
Ispy
veterán
válasz
Fundiego #5645 üzenetére
Union all, de az oszlopok neve legyen azonos, mondjuk állapot és abban az egyik fixen 1-et adjon vissza a másik meg 0-át.
Csak egyben akarod látni vagy az összegeket akarod szummázni?
[ Szerkesztve ]
"Debugging is like being the detective in a crime movie where you're also the murderer."
-
Ispy
veterán
válasz
Fundiego #5647 üzenetére
Akkor a két select egy-egy subquery, amiket joinnal kell összekötni. De ebből 3 kell:
- lekérdezés 1 inner join lekérdezés 2, mindent visszaad, ami mindkét lekérdezésben benne van
- lekérdezés 1 left join lekérdezés 2, ahol lekérdezés 2 aznosítója null, minden, ami csak lekérdezés 1-ben szerepel
- lekérdezés 2 left join lekérdezés 1, ahol lekérdezés 1 azonosítója null, minden, ami csak lekérdezés 2-ben szerepelEzt a 3 lekérdezést kell union allal összerakni egy selectben, de csak akkor lesz jó, ha van minden sornak egyedi azonosítója, pl. a név mező, ha az garantáltan egyedi, vagy egy egyedi id a névhez.
"Debugging is like being the detective in a crime movie where you're also the murderer."
Új hozzászólás Aktív témák
- ViewSonic VX2779-HD-Pro: megfizethető gamer monitor
- Honor 90 - modellalkat
- Samsung Galaxy S10e - esszenciális
- Luck Dragon: Asszociációs játék. :)
- Vicces képek
- Macska topik
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Ukrajnai háború
- Letartóztatták, mert AI segítségével csalt az egyetemi vizsgán
- Samsung Galaxy Z Fold4 - egyre megy, honnan nézed
- További aktív témák...
- BenQ PD3205U 4K Tervezői Monitor!32"/99% sRGB/Pantone/AQCOLOR/Type-c/Mac Ready/Beszámítás!
- Samsung Odyssey G8 Ívelt Ultrawide Oled Monitor!34"/Oled/WQHD/175hz/0,1ms/Freesync-G-sync/Beszámítás
- Ahh! DELL Latitude 3410 Tartós Profi Laptop -60% 14" i5-10210U 4Mag 16GB 512GB SSD FHD IPS
- Ohh! DELL Latitude 3410 Tartós Profi Laptop -60% 14" i5-10210U 4Mag 8GB 256GB SSD FHD IPS
- PlayStation 4/Slim/Pro konzolok teljes karbantartása, pasztázással Thermal Grizzly 1 órán belül!!