Hirdetés
- droidic: Windows 11 önállóság nélküli világ: a kontroll új korszaka
 - LordAthis: RETRÓnia - RETRÓ Mánia - Úton van hozzám egy csodás történelmi darab!
 - gban: Ingyen kellene, de tegnapra
 - hcl: Kelj fel komám, ne aludjál
 - sziku69: Fűzzük össze a szavakat :)
 - Pajac: Hámozott narancs
 - moongoose: Jelszóvédett IBM Thinkpad R50e működőképessé tétele
 - D1Rect: Nagy "hülyétkapokazapróktól" topik
 - urandom0: Új kedvenc asztali környezetem, az LXQt
 - Luck Dragon: Asszociációs játék. :)
 
Új hozzászólás Aktív témák
- 
			
			
						martonx
veterán
Ha ez úgyis tárolt eljárás (amire persze egyesek szerint úgy sincs semmi szükség), akkor tedd meg azt, hogy az alselect-et bedobod egy temp táblába, a temp tábla range_id-jére pedig teszel egy index-et (amivel egyesek szerint úgyse gyorsul számottevően semmi). Ezzel, ha minden igaz, drasztikusan le tudod redukálni a futásidőt.
 - 
			
			
						Apollo17hu
őstag
Akkor átírva a fentit ez jó?
SELECT t2.range_from
,t2.range_to
,MIN(CASE
WHEN t2.range_from >= t1.range_from AND t2.range_to <= t1.range_to THEN
'I'
ELSE
'N'
END) flag
FROM t1
,t2
GROUP BY t2.range_from
,t2.range_toszerk.: Tényleg jó a Fiddle, külön öröm, hogy van benne kódformázás is.
 - 
			
			
						Apollo17hu
őstag
SELECT tabla_1.col1
,tabla_2.col2
,MIN(CASE
WHEN tabla_1.col_1 >= tabla_2.col_1 AND tabla_1.col_2 <= tabla_2.col_2 THEN
'I'
ELSE
'N'
END) flag
FROM tabla_1
,tabla_2
GROUP BY tabla_1.col1
,tabla_2.col2Itt nem 'TRUE' jelenik meg, hanem 'I', ha a 2. táblában legalább egy olyan tartomány van, amibe beleesik, 'N' pedig, ha nincs ilyen tartomány.
Nem ellenőriztem, próbálgasd...
Az elv az, hogy a Descartes-szorzatot a MIN() függvénnyel redukálod (méghozzá az 1. táblában szereplő sorok számára). A MIN() azért jó, mert az 'I' karakter előbb van az ABC-ben mint az 'N' karakter.
 - 
			
			
						xeqe
csendes tag
Vagy várj, valamit elnéztem. Igazából az Osszes és a below72hours alapján nem lehet kiszámolni az above72hours értékét, hiszen utóbbi két érték esetében azok a sorok számítanak ahol valami szigorúan kisebb, illetve nagyobb, mint 72. Emiatt (below72hours + above72hours) nem feltétlen egyenlő az Osszes értékével.
Tehát egyik helyen meg kellene engedni az egyenlőséget ahhoz, hogy igaz legyen:
below72hours + above72hours = Osszes. - 
			
			
						xeqe
csendes tag
Amennyire én tudom, csak így lehet megoldani:
SELECT
date,
Osszes,
below72hours,
Osszes - below72hours
FROM (
SELECT
date,
COUNT(*) as Osszes,
COUNT(IF(valami < 72,valami,null)) as below72hours
FROM TABLE
GROUP BY date) as temp;És ez így még ocsmányabb, mint a te megoldásod. Amúgy a teljesítmény miatt nem kell aggódnod - ebben az esetben legalábbis. Az adatbázismotor erősen optimalizálja a lekérdezést, szóval valószínűleg az általad összehozott lekérdezés is úgy fog lefutni, hogy amint megvan az Osszes és a below72hours, egy kivonással kiszámolja a hiányzó értéket.
 - 
			
			
						martonx
veterán
Híjnye, jól látom, hogy a MySQL-lel hivatalosan nem lehet %-ot megadni a Limitnek? Pedig ez PostgreSQL-ben, MS SQL-ben (gondolom Oracle-ben is) támogatott.
Mindegy itt egy kerülő megoldás:SELECT*
FROM (
SELECT list.*, @counter := @counter +1 AS counter
FROM (select @counter:=0) AS initvar, list
ORDER BY value DESC
) AS X
where counter <= (10/100 * @counter);
ORDER BY value DESC 
Új hozzászólás Aktív témák
- DELL Precision 5540 Workstation i7-9850H Nvidia Quadro T2000 32GB 512GB 15.6" 1év garancia
 - Apple iPad A16 128GB,Újszerű,Dobozával,12 hónap garanciával
 - ÁRGARANCIA! Épített KomPhone Ultra 7 265KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
 - SEAGATE ST6000NM0034 6TB 7.2k 3.5 512e SAS HDD ST6000NM0034
 - Bomba ár! HP ProBook X360 435 G7 - Ryzen 3/5 I 8GB I 256SSD I 13,3" FHD Touch I W11 I Cam I Gari!
 
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő
								
							
								
								
								
								
