- Fórumok
- Szoftverfejlesztés
- SQL kérdések
- (kiemelt téma)
-
3800 - 3701
6041 - 6001 6000 - 5901 5900 - 5801 5800 - 5701 5700 - 5601 5600 - 5501 5500 - 5401 5400 - 5301 5300 - 5201 5200 - 5101 5100 - 5001 5000 - 4901 4900 - 4801 4800 - 4701 4700 - 4601 4600 - 4501 4500 - 4401 4400 - 4301 4300 - 4201 4200 - 4101 4100 - 4001 4000 - 3901 3900 - 3801 3800 - 3701 3700 - 3601 3600 - 3501 3500 - 3401 3400 - 3301 3300 - 3201 3200 - 3101 3100 - 3001 3000 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
GreenIT
tag
Hinnye, ehhez a céghez se mennék el dolgozni, ha ilyen f****ságokat beszélnek már egy állásinterjún is

A Redis persze tök jó dolog, mondjuk distributed cache-ként használva, és vannak olyan microservice-ink amik alá tényleg elég egy nosql (AWS DynamoDB szevasz) adatbázisnak 2-3 táblával, no de a világ azért nem csak fekete és fehér, nem véletlenül létezik még az Oracle, MS SQL, MySQL, PostgreSql és társaik.nem véletlenül létezik még az Oracle, MS SQL, MySQL, PostgreSql és társaik.
Azt mondtak, az Oracle megbukott, nem volt kepes tobb szaz telephely (server) adatait biztonsagosan es gyorsan kezelni, mig a Redis megoldotta.
-
GreenIT
tag
Jó dolog a NoSQL, de nem feltétlen és nem minden esetben tudja (vagy érdemes rá) kiváltani az SQL-t.
Annyira nagy tapasztalatom nincs benne a legalábbis a NoSQL-ek terén, főként MongoDB-t használtam eddig, azt meg ugye dokumentumok tárolására a legérdemesebb használni, de lehet bármire, amire akarod.Ismerni és használni tudni érdemes a NoSQL-t, valamint hogy milyen lehetőségeket ad, de hogy az 1-1-ben kiváltani velük az SQL-t háááát.......
Akinek van Redis tapasztalat esetleg írjon már pár sort róla.
Ahogy láttam vannak külön függvényei a GIS-hez is, ezért keltette fel az érdeklődésem
Bár találtam egy ilyet , meg ilyet
Koszonom a llinkeket, ezek szerint a Redis radikalisan gyorsabb.
Jol latom, hogy visszater a kliens-server strukturahoz?
-
Tanisz
senior tag
Jó dolog a NoSQL, de nem feltétlen és nem minden esetben tudja (vagy érdemes rá) kiváltani az SQL-t.
Annyira nagy tapasztalatom nincs benne a legalábbis a NoSQL-ek terén, főként MongoDB-t használtam eddig, azt meg ugye dokumentumok tárolására a legérdemesebb használni, de lehet bármire, amire akarod.Ismerni és használni tudni érdemes a NoSQL-t, valamint hogy milyen lehetőségeket ad, de hogy az 1-1-ben kiváltani velük az SQL-t háááát.......
Akinek van Redis tapasztalat esetleg írjon már pár sort róla.
Ahogy láttam vannak külön függvényei a GIS-hez is, ezért keltette fel az érdeklődésem
Bár találtam egy ilyet , meg ilyet
-
martonx
veterán
Hinnye, ehhez a céghez se mennék el dolgozni, ha ilyen f****ságokat beszélnek már egy állásinterjún is

A Redis persze tök jó dolog, mondjuk distributed cache-ként használva, és vannak olyan microservice-ink amik alá tényleg elég egy nosql (AWS DynamoDB szevasz) adatbázisnak 2-3 táblával, no de a világ azért nem csak fekete és fehér, nem véletlenül létezik még az Oracle, MS SQL, MySQL, PostgreSql és társaik. -
GreenIT
tag
-
Ispy
nagyúr
-
Peter Kiss
őstag
-
sztanozs
veterán
-
GreenIT
tag
Allaskeresesnel azt a tanacsot kaptam, hogy SQL helyett NOSQL-t tanuljak, mert mar az a jelen es jovo.
Van valakinek tapasztalata ezzel, valoban jon egy radikalis valtozas? -
user112
senior tag
-
velizare
nagyúr
ja igen. az első
wherenél az=-t ki kell cserélniin-re. így:select * from tabla where azon in (select distinct azon from tabla where sorszam =8) and sorszam in (8, 12) order by sorszam desc; -
user112
senior tag
-
user112
senior tag
Hát ennyi speckó alapján az alábbiak közül bármelyik jó lehet. Nem tudom melyik a preferált output neked:
-- egymas mellett
WITH sorsz8 AS (SELECT * FROM tabla WHERE SORSZ=8)
,sorsz12 AS (SELECT * FROM tabla WHERE SORSZ=12)
SELECT *
FROM sorsz8 a
LEFT OUTER JOIN sorsz12 b ON (a.azon = b.azon)
ORDER BY a.azon
-- egymas alatt
SELECT * FROM
(
SELECT * FROM tabla WHERE SORSZ=8
UNION
SELECT * FROM tabla WHERE SORSZ=12
)
ORDER BY azon, sorszIlletve az adatok (ismátlődések) ismeretében, esetleg UNION ALL a UNION helyett.
Nagyon köszönöm. Szuper. Az első tökéletes, a második módszernél viszont minden sor lejön, all-al is.
-
velizare
nagyúr
Sziasztok!
Ebben a táblában:
AZON
SORSZ
ERTEK
minden AZON-hoz több különböző SORSZ tartozik, de a SORSZ=12 mindenkinél szerepel.
Szeretném legyűjteni azokat a rekordokat, ahol a SORSZ=8; de ha van ilyen, akkor hozza mellé (alá) a SORSZ=12-höz tartozó ERTEK-et is.
Ebben szeretnék segítséget kérni (Oracle).
Köszönöm.szerintem:
select * from tabla where azon=(select distinct azon from tabla where sorszam =8) and sorszam in (8, 12) order by sorszam desc; -
tm5
tag
Sziasztok!
Ebben a táblában:
AZON
SORSZ
ERTEK
minden AZON-hoz több különböző SORSZ tartozik, de a SORSZ=12 mindenkinél szerepel.
Szeretném legyűjteni azokat a rekordokat, ahol a SORSZ=8; de ha van ilyen, akkor hozza mellé (alá) a SORSZ=12-höz tartozó ERTEK-et is.
Ebben szeretnék segítséget kérni (Oracle).
Köszönöm.Hát ennyi speckó alapján az alábbiak közül bármelyik jó lehet. Nem tudom melyik a preferált output neked:
-- egymas mellett
WITH sorsz8 AS (SELECT * FROM tabla WHERE SORSZ=8)
,sorsz12 AS (SELECT * FROM tabla WHERE SORSZ=12)
SELECT *
FROM sorsz8 a
LEFT OUTER JOIN sorsz12 b ON (a.azon = b.azon)
ORDER BY a.azon
-- egymas alatt
SELECT * FROM
(
SELECT * FROM tabla WHERE SORSZ=8
UNION
SELECT * FROM tabla WHERE SORSZ=12
)
ORDER BY azon, sorszIlletve az adatok (ismátlődések) ismeretében, esetleg UNION ALL a UNION helyett.
-
user112
senior tag
Sziasztok!
Ebben a táblában:
AZON
SORSZ
ERTEK
minden AZON-hoz több különböző SORSZ tartozik, de a SORSZ=12 mindenkinél szerepel.
Szeretném legyűjteni azokat a rekordokat, ahol a SORSZ=8; de ha van ilyen, akkor hozza mellé (alá) a SORSZ=12-höz tartozó ERTEK-et is.
Ebben szeretnék segítséget kérni (Oracle).
Köszönöm. -
DS39
nagyúr
Köszönöm.
Egyébként ez már php de mért dob ki hibát?
hogy kellene ezt a SET @rank-ot és select @rank-ot kiíratni php-ban? vmiért nem akar működni, hibát dob ki. (a tábla kiíratását nem illesztettem be most, de nem az a probléma)$servername = '*';
$username = '*';
$password = '*';
$dbname = '*';// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
mysqli_set_charset($conn,'utf8');$sql1 = "SET @rank=0";
$sql2 = "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, $sql1,$sql2) or die("Bad Query: $sql");
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);
-
Fundiego
tag
Köszönöm.
Egyébként ez már php de mért dob ki hibát?
hogy kellene ezt a SET @rank-ot és select @rank-ot kiíratni php-ban? vmiért nem akar működni, hibát dob ki. (a tábla kiíratását nem illesztettem be most, de nem az a probléma)$servername = '*';
$username = '*';
$password = '*';
$dbname = '*';// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
mysqli_set_charset($conn,'utf8');$sql1 = "SET @rank=0";
$sql2 = "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, $sql1,$sql2) or die("Bad Query: $sql");
-
nyunyu
félisten
Between azért is szívás lehet, mert ha varcharban tárolt értékeket próbálsz hasonlítani, akkor az implicit típuskonverzió számmá, aztán az csúnyán el tud szállni, ha benézel egy NULLt vagy egy nem jól/jókor szűrt táblát.
Pl. hiába teszel a between elé egy upper(x)=lower(x)-et plusz egy is not null-t, hogy a nem számokat kiszűrd, mert nem biztos, hogy mindig ugyanolyan sorrendben fog szűrni az adatbázis...
Oracle például szereti párhuzamosan kiértékelni a join feltételeket: mindegyik lefut minden sorra, aztán a részeredményekből legózza össze a join eredményét.(Telefonszámokat kellett sorfolytonos tartományokba rendeznem, ahol a telefonszám mezőben egyéb azonosítók is lehettek a nem telefon jellegű rekordokon...
Lexebb a '#47543' érték volt, ami a varchar(10)-ból kilógó hosszúságú telefonszámot tároló másik táblára mutató pointer akart lenni.
Ja, átment az upper(x)=lower(x) teszten.) -
K1nG HuNp
őstag
jó mondjuk ez egy érettségi feladat, ha katyvasz de működik is max pont

ettől függetlenül akkor hozzászokom a másikhoz, én sem szeretnék rossz berögződéseket, kösz az infót!
-
bambano
titán
"AND 500 BETWEEN elso AND utolso": ez nekem nagyon katyvasznak tűnik...
arra sem mernék megesküdni, hogy mindig minden rendszeren helyes lesz, mert nem mindegy, hogy a between feltételét mikor értékeli ki az optimalizáló. -
K1nG HuNp
őstag
Közben lejárt a szerk, bocsánat.
MS Access 2016, hogyan tudom beállítani hogy a kurzor ne "átíró" legyen hanem a megszokott, minden máshol használt beállítású. Tehát ha belekattintok a sor közepébe és elkezdek írni akkor ne átítja a többi karaktert..
-
K1nG HuNp
őstag
AND elso<=500 AND utolso>=500
vagyAND 500 BETWEEN elso AND utolso
a helyesebb? -
DS39
nagyúr
Sziasztok
Mysql-be kellene a segítség. Ezzel a kóddal csökkenő sorrendbe rendezi az össz eladott gyümölcsmennyiséget, viszont a RANK-ot a gyümölcsök abc sorrendje szerint ossza ki.Nekem pedig úgy kellene hogy a sum(mennyiseg) alapján. Mit kellene megváltoztatni?
SET @rank=0;
SELECT @rank:=@rank+1 AS rank, gyumolcs, sum(mennyiseg)
FROM gyumolcs Where ev='2016'
group by gyumolcs
ORDER BY sum(mennyiseg) DESC
;Szia!
Így meg lehet oldani:
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 -
Fundiego
tag
Sziasztok
Mysql-be kellene a segítség. Ezzel a kóddal csökkenő sorrendbe rendezi az össz eladott gyümölcsmennyiséget, viszont a RANK-ot a gyümölcsök abc sorrendje szerint ossza ki.Nekem pedig úgy kellene hogy a sum(mennyiseg) alapján. Mit kellene megváltoztatni?
SET @rank=0;
SELECT @rank:=@rank+1 AS rank, gyumolcs, sum(mennyiseg)
FROM gyumolcs Where ev='2016'
group by gyumolcs
ORDER BY sum(mennyiseg) DESC
; -
bambano
titán
Sziasztok!
PostgreSQL-ben a max id-t (legutolsóként hozzáadott rekordot) hogyan lehet a leghatákonyabb módon lekérdezni? Update-elni akarok, és eddig így csináltam:
WHERE id=(select max(id) from table) vagy így:
WHERE id=currval('table_id_seq');Utóbbi az EXPLAIN ANALYSE szerint jóval gyorsabb execution time alpaján.
Létezik esetleg valami ezekenél még hatékonyabb, gyorsabb megoldás?
szerintem úgy, hogy lekérdezed az utolsó hozzáadott rekord id-jét.
erre a (szerintem) leghatékonyabb megoldás az, hogy:
insert akarmi into tabla returning id;
és itt átveszed a visszaadott értéket.
-
kw3v865
senior tag
Sziasztok!
PostgreSQL-ben a max id-t (legutolsóként hozzáadott rekordot) hogyan lehet a leghatákonyabb módon lekérdezni? Update-elni akarok, és eddig így csináltam:
WHERE id=(select max(id) from table) vagy így:
WHERE id=currval('table_id_seq');Utóbbi az EXPLAIN ANALYSE szerint jóval gyorsabb execution time alpaján.
Létezik esetleg valami ezekenél még hatékonyabb, gyorsabb megoldás?
-
user112
senior tag
Nullif-et én sem szoktam használni.
Talán így kellene.
Amúgy egy lekérdezésbe kell, vagy tárolt eljárásba?
Milyen SQL? Oracle,MsSQL...stb?ha oracle és a mez1 és mez2 numerikus mező:
case when nvl(mez2,0) <> 0 then round((nvl(mez1,0)*100)/ mez2,0) else 0 endde nem tudom pontosan mi a feladat
Sima lekérdezés, Oracle select és numerikus mezők.
-
Tanisz
senior tag
Nullif-et én sem szoktam használni.
Talán így kellene.
Amúgy egy lekérdezésbe kell, vagy tárolt eljárásba?
Milyen SQL? Oracle,MsSQL...stb?ha oracle és a mez1 és mez2 numerikus mező:
case when nvl(mez2,0) <> 0 then round((nvl(mez1,0)*100)/ mez2,0) else 0 endde nem tudom pontosan mi a feladat
-
user112
senior tag
-
Ispy
nagyúr
ISNULL?
Milyen SQL?
Osztásnál és case-t szoktam használni...
-
user112
senior tag
Sziasztok!
Null érték kezeléssel kapcsolatosan szeretnék kérdezni.
Mi a szabványos eljárás szorzás/osztás illetve összeadás/kivonás esetén?
Utóbbinál gondolom: nvl, mintkét tagnál.
Elöbbinél nullif vagy case a jó? Esetleg egy példát írnátok (round-al)?
Köszönöm! -
Tanisz
senior tag
Sziasztok,
Tudnátok mondani GUI-s Developert/Workbanch-et PostgreSQL-hez?
Ami jól használható,komplex, mint kb az Oracle oldalon a PL/SQL Developer, vagy a sima Oracle SQL Developer?SQL-Workbanch-kel szemezek, nem tudom milyen lehet. Sajna nagyon nincs időm próbálgatni a különböző eszközöket.
Ez alapján indulok ki a keresésben: [link]
Segítségeteket előre is köszönöm.
-
nyunyu
félisten
Köszi, ez így jó
3763
Sajnos régebben voltak futamok ahol verseny közben a pilóták átadták egymásnak a kocsit, így előfordult a hivatalos végeredménynél, hogy pl 3 db 2. hely is lett ezáltal. A versenyzőknél ezt úgy jegyzik le, hogy 3 db 2. hely viszont a csapatoknál ez csak 1-nek felel meg.Na, ezt nem tudtam, hogy az F1 is olyan volt, mint a Le Mans.
Akkor tényleg kell a distinct. -
Fundiego
tag
Í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.
Köszi, ez így jó
3763
Sajnos régebben voltak futamok ahol verseny közben a pilóták átadták egymásnak a kocsit, így előfordult a hivatalos végeredménynél, hogy pl 3 db 2. hely is lett ezáltal. A versenyzőknél ezt úgy jegyzik le, hogy 3 db 2. hely viszont a csapatoknál ez csak 1-nek felel meg. -
nyunyu
félisten
Hali, létezik hogy ezt a két lekérdezést egybe listázzam ki úgy, hogy ráadásul GROUP BY ev működjön és 3 oszlopba legyen ? vhogy így nézzen ki.
év első második
1950 1 2
1951 1 51. lekérdezés
SELECT ev, COUNT(DISTINCT datum) from futam WHERE vegeredmeny='2' AND Karosszeria='Ferrari'
GROUP BY ev2. lekérdezés
SELECT ev, COUNT(DISTINCT datum) from futam WHERE vegeredmeny='1' AND Karosszeria='Ferrari'
GROUP BY evVagy ennyire azért ne bonyolítsuk?
[szerk:]Szerintem a distinct felesleges, mert ha két Ferrari végzett ugyanazon a futamon elsőként, akkor ott valami nagyon nagy baj van az adathalmazzal...
-
DS39
nagyúr
Hali, létezik hogy ezt a két lekérdezést egybe listázzam ki úgy, hogy ráadásul GROUP BY ev működjön és 3 oszlopba legyen ? vhogy így nézzen ki.
év első második
1950 1 2
1951 1 51. lekérdezés
SELECT ev, COUNT(DISTINCT datum) from futam WHERE vegeredmeny='2' AND Karosszeria='Ferrari'
GROUP BY ev2. lekérdezés
SELECT ev, COUNT(DISTINCT datum) from futam WHERE vegeredmeny='1' AND Karosszeria='Ferrari'
GROUP BY evÍ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.
-
Fundiego
tag
Hali, létezik hogy ezt a két lekérdezést egybe listázzam ki úgy, hogy ráadásul GROUP BY ev működjön és 3 oszlopba legyen ? vhogy így nézzen ki.
év első második
1950 1 2
1951 1 51. lekérdezés
SELECT ev, COUNT(DISTINCT datum) from futam WHERE vegeredmeny='2' AND Karosszeria='Ferrari'
GROUP BY ev2. lekérdezés
SELECT ev, COUNT(DISTINCT datum) from futam WHERE vegeredmeny='1' AND Karosszeria='Ferrari'
GROUP BY ev -
Doink
aktív tag
köszönöm, igazából szívesen berakom, csak attól félek, hogy nagyon rosszul sikerült és elküldötök a fenébe

feladat:
Tárolja adatbázisban a klubtagok és a hajók adatait és képét, valamint a kölcsönzéseket. Lehessen új
klubtagot, hajót, szállítóeszközt rögzíteni. Tárolja a kölcsönzéseket, amiket a klubtagok a hajók
foglaltságának figyelembevételével tehetnek meg. A tulajdonos, amennyiben az ő hajóját szeretné
valaki bérbe venni, tekinthesse meg a bérlő néhány adatát, valamint igazolja vissza, hogy a kért
időszakban rendelkezésre tudja-e bocsátani a yachtját. Minden megtett hajóút kerüljön rögzítésre,
illetve az is, hogy mikor melyik kikötőben járt vagy tartózkodik jelenleg is a hajó.
Kölcsönzéskor a bérlő adja meg, hogy honnan, hová szeretne elhajózni és hány személyes yachtra
van szüksége. Az adott időszakban szabad hajókat listázza ki a program. A klubtagok saját hajóikat
bérbe adhatják, illetve kikötőkben tárolják. A szállításhoz bérelhetnek szállítóeszközöket, amit a Yacht
Clubtól is kölcsönözhetnek. A Yacht club tulajdonában is vannak hajók, ezeket bárki bérelheti.és ez alapján csináltam egy ilyet, 1-2 dolog még béta fázisba van, hogy mit hogyan tároljak, de a magja az ilyen lenne
Teljesen korrekt csak még hegesztgetni kell rajta.
- Fogalalt-e mezők feleseslegesek mert azt látod a bérlés/kölcsönzésből.
- Nincs klub tábla annak ellenére hogy a kluboknak és a klub tagoknak is lehet hajója. Ha egy ember több klubban is lehet akkor értelem szerűen many-to-many lesz.
- Jacht_kikötője rossz helyre van kötve, most az a klubtagok kikötője.
- A Jachtnál az épp_ebben_a_kikötőben_van dolog kicsit cseles mert ha éppen nem bérelték ki mégis mozgott akkor gondolkodni kell azon, hogy az is bekerül az útvonalba NULL bérléssel vagy sem. Ha igen akkor nem kell épp_ebben_a_kikötőben_van mező, ha nem akkor kell.Úgy hirtelen ennyit látok.
-
kw3v865
senior tag
@bambano
A célirányos indexek mit jelentenek tulajdonképpen? Hol tudok erről olvasni angolul? Most térbeli indexeket használok, ez sokat segít, ezek nélkül sokkal lassabb lenne.
@VirsLee
Autóban van a rendszer, valós időben kell működnie, max. 100 km/h-ig, de többnyire 80 alatt (teljesen offline, minden localhoston). Kapja a koordinátákat a nagy pontosságú GPS-től, és elsősorban térbeli lekérdezéseket kell futtatni. Jelenleg szimulálva megy a dolog, egy korábban rögzített track alapján, most éppen 25 ms-st állítottam be frissítési gyakoriságnak. ilyen gyakorisággal hívja meg a függvényeket. Többnyire PostGIS-es függvényeket használok, de ezeket kombinálom is általában, pl. a legközelebb lévő objektumok távolságát kell kiszámolni, vagy jeleznie kell, amikor az autó egy poligon területére megy rá, ilyenek. Alapvetően egyelőre meg vagyok elégedve a teljesítménnyel, de amikor bővülni fognak a funkciók (nem csak SQL, egyebek is), akkor azért már számíthat, hogy mennyi erőforrást igényel, sajnos a hardver teljesítménye korlátozott (bár aránylag jónak mondható). -
bandi0000
nagyúr
Ez jól hangzik, de a sok szöveg helyett foldobhattál volna egy ábrát mert az többet mond minden szónál.
Az első kérdésedre a válasz ha jól értem akkor idegen kulcsokkal tárolnád szóval nem probléma.
A hajós dologhoz:
hajók(hajo_id, jelenlegi_kikötő_id, .....)
kikötők(kikötő_id, cím, .....)
kölcsönzések(kölcsönzés_id, ......)
útvonalak(id, kölcsönzés_id, hajo_id, kikötő_id, érkezés_ideje, ....)Most itt nem tárgyalom ki hogy az id mezők helyett lehetne összetett kulcs mert nem írtál semmi sémát arról, hogy mit kell tárolni.
Ha feltételezzük, hogy egy hajó nincs mindig kikötőben mert néha épp járja a vizet akkor úgy csináld ahogy írtad és arra vigyázz, hogy az útvonalba bekerüljön az induló kikötő induláskor.köszönöm, igazából szívesen berakom, csak attól félek, hogy nagyon rosszul sikerült és elküldötök a fenébe

feladat:
Tárolja adatbázisban a klubtagok és a hajók adatait és képét, valamint a kölcsönzéseket. Lehessen új
klubtagot, hajót, szállítóeszközt rögzíteni. Tárolja a kölcsönzéseket, amiket a klubtagok a hajók
foglaltságának figyelembevételével tehetnek meg. A tulajdonos, amennyiben az ő hajóját szeretné
valaki bérbe venni, tekinthesse meg a bérlő néhány adatát, valamint igazolja vissza, hogy a kért
időszakban rendelkezésre tudja-e bocsátani a yachtját. Minden megtett hajóút kerüljön rögzítésre,
illetve az is, hogy mikor melyik kikötőben járt vagy tartózkodik jelenleg is a hajó.
Kölcsönzéskor a bérlő adja meg, hogy honnan, hová szeretne elhajózni és hány személyes yachtra
van szüksége. Az adott időszakban szabad hajókat listázza ki a program. A klubtagok saját hajóikat
bérbe adhatják, illetve kikötőkben tárolják. A szállításhoz bérelhetnek szállítóeszközöket, amit a Yacht
Clubtól is kölcsönözhetnek. A Yacht club tulajdonában is vannak hajók, ezeket bárki bérelheti.és ez alapján csináltam egy ilyet, 1-2 dolog még béta fázisba van, hogy mit hogyan tároljak, de a magja az ilyen lenne
-
Doink
aktív tag
sziasztok
nem biztos hogy szorosan ide tartozik, de hátha tudtok segíteni
adatbázist kellene terveznem, és 3.NF ra hozni
van 3 tábla, ami nem tudom mennyire lenne jól megoldva, ha, egyikbe id alapján tárolnám el a lakcímet, és a másik 2 különböző tábla mindegyik adatához tárolnám az azonosítók alapján a lakcímeket, de lehetne olyan hogy mindkettőhöz ugyan az a lakcím tartozna, ez nem lenne gond a 3. NF-nak?
mert első ötlet az volt h 3 tábla helyett csak 2 lenne, és helybe tárolnám a címeket minden sorba, de ez azt hiazem bele ütközik a 3.NF be
illetve hajóknak kellene tárolni a jelenlegi kikötő címét, és ha kibérelik akkor el kell tárolni az összes kikötőt ahol megfordult, erre is az előzőhöz hasonló megoldás jutott eszembe, hogy külön tárolom a kikötőket, és a hajók táblájában tárolnám az induló kikötőt id szerint, és egy külön táblába meg id-k alapján hogy mikor melyik kikötőbe fordult meg
ezek így mennyire életképes gondolatok?

Ez jól hangzik, de a sok szöveg helyett foldobhattál volna egy ábrát mert az többet mond minden szónál.
Az első kérdésedre a válasz ha jól értem akkor idegen kulcsokkal tárolnád szóval nem probléma.
A hajós dologhoz:
hajók(hajo_id, jelenlegi_kikötő_id, .....)
kikötők(kikötő_id, cím, .....)
kölcsönzések(kölcsönzés_id, ......)
útvonalak(id, kölcsönzés_id, hajo_id, kikötő_id, érkezés_ideje, ....)Most itt nem tárgyalom ki hogy az id mezők helyett lehetne összetett kulcs mert nem írtál semmi sémát arról, hogy mit kell tárolni.
Ha feltételezzük, hogy egy hajó nincs mindig kikötőben mert néha épp járja a vizet akkor úgy csináld ahogy írtad és arra vigyázz, hogy az útvonalba bekerüljön az induló kikötő induláskor. -
bandi0000
nagyúr
sziasztok
nem biztos hogy szorosan ide tartozik, de hátha tudtok segíteni
adatbázist kellene terveznem, és 3.NF ra hozni
van 3 tábla, ami nem tudom mennyire lenne jól megoldva, ha, egyikbe id alapján tárolnám el a lakcímet, és a másik 2 különböző tábla mindegyik adatához tárolnám az azonosítók alapján a lakcímeket, de lehetne olyan hogy mindkettőhöz ugyan az a lakcím tartozna, ez nem lenne gond a 3. NF-nak?
mert első ötlet az volt h 3 tábla helyett csak 2 lenne, és helybe tárolnám a címeket minden sorba, de ez azt hiazem bele ütközik a 3.NF be
illetve hajóknak kellene tárolni a jelenlegi kikötő címét, és ha kibérelik akkor el kell tárolni az összes kikötőt ahol megfordult, erre is az előzőhöz hasonló megoldás jutott eszembe, hogy külön tárolom a kikötőket, és a hajók táblájában tárolnám az induló kikötőt id szerint, és egy külön táblába meg id-k alapján hogy mikor melyik kikötőbe fordult meg
ezek így mennyire életképes gondolatok?

-
Taoharcos
aktív tag
Sziasztok!
Adatbázis terv grafikus ábrázolásához tudtok valami ingyenes és jól használható akár online tervező/rajzoló programot/oldalt?
-
Petya25
őstag
Köszi, ezt én is láttam már, de 2008 alatt nincs FORMAT.
"Msg 195, Level 15, State 10, Line 2
'FORMAT' is not a recognized built-in function name." -
Peter Kiss
őstag
MS SQL-ben valami egyszerű tipp arra, hogy money-ban tárolt értéket tényleg pénznem formátumban tudjak megjeleníteni? Fájlba írom szüvegként és a select a formázást eldobja.
select érték from tábla > 1234567,4
select convert(money, érték) from tábla > 1234567,4 szintén..Nekem meg 1.234.567,4 Ft vagy hasonló kellene...
-
Petya25
őstag
MS SQL-ben valami egyszerű tipp arra, hogy money-ban tárolt értéket tényleg pénznem formátumban tudjak megjeleníteni? Fájlba írom szüvegként és a select a formázást eldobja.
select érték from tábla > 1234567,4
select convert(money, érték) from tábla > 1234567,4 szintén..Nekem meg 1.234.567,4 Ft vagy hasonló kellene...
Egy ilyen "egyszerű" megoldást találtam:
SELECT REPLACE(CONVERT(varchar(20), (CAST(érték AS money)), 1), '.00', ' Ft') from tábla
1,234,567 Ft
-
Petya25
őstag
MS SQL-ben valami egyszerű tipp arra, hogy money-ban tárolt értéket tényleg pénznem formátumban tudjak megjeleníteni? Fájlba írom szüvegként és a select a formázást eldobja.
select érték from tábla > 1234567,4
select convert(money, érték) from tábla > 1234567,4 szintén..Nekem meg 1.234.567,4 Ft vagy hasonló kellene...
-
VirsLee
támogató
Sziasztok!
Tudtok-e nekem ajánlani olyan blogot, könyvet vagy bármilyen tananyagot", ahol kifejezetten a PostgreSQL függvények, lekérdezések teljesítményének optimalizálásával foglalkoznak? Olyan szoftvert fejlesztek, amiben nagyon fontos a futtatás sebessége. Itt nagy jelentősége van, hogy pl. 100 vagy 50 ms alatt fut le, és szeretnék ezen a téren fejlődni.
Ki tudnád ezt fejteni bővebben? Mekkora adatbázisból, mennyi és milyen adatot, milyen gyakorisággal, milyen infrastruktúrán, stb.
-
bambano
titán
Sziasztok!
Tudtok-e nekem ajánlani olyan blogot, könyvet vagy bármilyen tananyagot", ahol kifejezetten a PostgreSQL függvények, lekérdezések teljesítményének optimalizálásával foglalkoznak? Olyan szoftvert fejlesztek, amiben nagyon fontos a futtatás sebessége. Itt nagy jelentősége van, hogy pl. 100 vagy 50 ms alatt fut le, és szeretnék ezen a téren fejlődni.
a legegyszerűbb optimalizálás a még több ram.
a másik tipikus módszer, hogy célirányos indexeket csinálsz, és az explain utasítással megnézed, hogy használja-e a rendszer.
-
martonx
veterán
Sziasztok!
Tudtok-e nekem ajánlani olyan blogot, könyvet vagy bármilyen tananyagot", ahol kifejezetten a PostgreSQL függvények, lekérdezések teljesítményének optimalizálásával foglalkoznak? Olyan szoftvert fejlesztek, amiben nagyon fontos a futtatás sebessége. Itt nagy jelentősége van, hogy pl. 100 vagy 50 ms alatt fut le, és szeretnék ezen a téren fejlődni.
Internet

-
kw3v865
senior tag
Sziasztok!
Tudtok-e nekem ajánlani olyan blogot, könyvet vagy bármilyen tananyagot", ahol kifejezetten a PostgreSQL függvények, lekérdezések teljesítményének optimalizálásával foglalkoznak? Olyan szoftvert fejlesztek, amiben nagyon fontos a futtatás sebessége. Itt nagy jelentősége van, hogy pl. 100 vagy 50 ms alatt fut le, és szeretnék ezen a téren fejlődni.
-
martonx
veterán
Üdv!
Talán picit off a kérdésem, de úgy hiszem, hogy ha választ keresek, nem járok rossz helyen.

Adott egy viszonylag kevés RAM-mal rendelkező eszköz, amire szeretnék feltenni valami adatbázist. PostgreSQL-t, vagy mariadb-t válasszak? Csupán egy program használná, illetve pár táblára lenne szükségem, sok adattal.
Köszönöm a válasz(oka)t!

Ha sok az adat, akkor kevés ramos gépre én nem tennék semmilyen adatbázis motort. Persze mindig relatív, hogy mi a sok. 10 sornál több lesz egy táblában, vagy 1000-nél, egymilliónál, vagy milliárdnál?
Pár táblához, ha már lokális adatbázis, akkor én sql lite-ra szavaznék, vagy valami hasonló kis fisfos lokál db-re. -
VirsLee
támogató
Keresni szeretnék az adatbázisban, de van az adott mezőnek egy kinézete: 6.959-130.0
Megoldahtó az, hogy a szövegmezőbe beírt szám 69591300 legyen formázás nélkül de megtalálja a felső számot, és jó lenne ha nem kéne végiírni, hanem folyamatosan szűkülne ahogy írom be.
Több mint 50000 bejegyzés van de 20-ra van limitálva a kiírás.Távolítsd el a nem numerikus karaktereket és simán tolhatsz rá likeot az addig begépelt karakterekkel. Fetcheld ki az első 20-at és kész. 50e rekordnál még nem hiszem, hogy performancia probléma lenne.
-
bambano
titán
Üdv!
Talán picit off a kérdésem, de úgy hiszem, hogy ha választ keresek, nem járok rossz helyen.

Adott egy viszonylag kevés RAM-mal rendelkező eszköz, amire szeretnék feltenni valami adatbázist. PostgreSQL-t, vagy mariadb-t válasszak? Csupán egy program használná, illetve pár táblára lenne szükségem, sok adattal.
Köszönöm a válasz(oka)t!

én mariadb-t nem tennék fel sehova.
a magam részéről postgresql-t rakok mindenhova, de megkérdezném, hogy firebird? -
Kommy
veterán
Keresni szeretnék az adatbázisban, de van az adott mezőnek egy kinézete: 6.959-130.0
Megoldahtó az, hogy a szövegmezőbe beírt szám 69591300 legyen formázás nélkül de megtalálja a felső számot, és jó lenne ha nem kéne végiírni, hanem folyamatosan szűkülne ahogy írom be.
Több mint 50000 bejegyzés van de 20-ra van limitálva a kiírás. -
Mr Dini
addikt
Üdv!
Talán picit off a kérdésem, de úgy hiszem, hogy ha választ keresek, nem járok rossz helyen.

Adott egy viszonylag kevés RAM-mal rendelkező eszköz, amire szeretnék feltenni valami adatbázist. PostgreSQL-t, vagy mariadb-t válasszak? Csupán egy program használná, illetve pár táblára lenne szükségem, sok adattal.
Köszönöm a válasz(oka)t!

-
martonx
veterán
-
kem
addikt
Ez a FIRST egyebkent a tabla elso n sorat veszi figyelembe vagy pedig a where klauzakat feldolgozva az eredmenybol az elso n szamu sort?
-
kem
addikt
Ezt nem tudom sajnos. Viszont most hogy mukosik, mar csak az UPDATE-t kellene vele osszekombinalni.
UPDATE FIRST 1 subscription_attribute sa
set sa.VALUE = REPLACE( sa.value, 'OldValue','NewValue' )
where
blah blahEzt ki is probaltam, ugy tunik mukodik

-
bpx
őstag
-
sztanozs
veterán
-
kem
addikt
-
sztanozs
veterán
-
bpx
őstag
-
kem
addikt
Sziasztok ismet!
TimesTen DB-ben szeretnem limitalni a sorok szamat amit kiir egy SQL Query. Valakinek van erre otlete? Se a LIMIT 200; se a ROWNUM <= 200; nem mukodik.
Elore is koszonom a valaszokat!
kem
-
Fecogame
veterán
mysqldump futását hogyan lehet felgyorsítani?
Jelenleg az alábbi parancsot futtatom az egyes DB-k lementésére:
mysqldump --opt -Q -u $mysqluser --password=$mysqlpwd $DBname > /backup/path/DB.sql
Működik jól ( export is hibátlan ), viszont nagyon lassú a művelet. 19MB-os DB-t 70 másodperc alatt ment le. Ami főleg azért probléma, mert 20 külön adatbázisom van, vagyis egy teljes mentési folyamat több, mint 20 percig tart.
Erre valaki?
-
galocza
aktív tag
Ez elég nehezen távgyógyítható témakör, és a sarki pistike nem biztos, hogy saját kútfőből meg tudja oldani okosba'
Ha meg a kasszarendszert hivatalosan supportáló brigád cserélte sok pénzért a komplett gépet ahelyett, hogy megvizsgálta volna, hogy
1) hálózati kapcsolat elég stabil-e kábelteszterrel, és ha szükséges, akkor kábel újrakrimpelés RÁ VALÓ dugóval */komplett kábel csere, ha a régi menthetetlen
2) gépen jól van-e beállítva a DB connection string (pl. servert keresi-e a helyben futó Firebird példány helyett)
Akkor toll a fülükbe.
*: Tömör fali kábel vs egyenes késes UTP csatiról tudnék órákat mesélni...
köszönöm a választ.
igen, a fülükbe toll...
1. kábelcserét elvileg én is meg tudom oldani, s így, hogy szerinted lehet az, akkor meg is fogom tenni.
2. ezzel sokat nem tudok tenni, de a leírt nem állandó probléma, hanem mintha néha "beakadna". gondolom, ha az általad leírt dolog lenne, akkor teljes káosz, anarchia, pandemonium lenne.*itt vesztettél el teljesen. gondolom nem összeegyeztethetőek... 8)
-
nyunyu
félisten
halihó,
szeretném előrebocsátani, hogy tökhülye vagyok adatbáziskezelőkkel kapcsolatban, de a problémát le tudom írni, és tán némi iránymutatást tudtok adni.
munkahelyemen van 3 "kassza" kliensgép, amelyek egy külön szervergépről tápálkoznak adatokkal (firebird 2.5).
az egyik gép néha teljesen más adatokat mutat, mint a többi három, beleértve a szervert - mintha a változások hozzá nem jutnának el: hiányoznak rendszerüzenetek, készletek változásai stb. a dolog szépsége, hogy ez a gép komplett cserén esett át pár hónapja, előtte és utána is mutatta ezt a furcsaságot. hozzátartozik, hogy gyanítom, hogy a rendszergazdák nem telepítették újra sem a firebird-öt, sem az azt kezelő programot - csak átpakolták az egész hóbelevancot az új gépre.
a kérdésem: mi okozhatja a fenti problémát? adatbáziskezelő csinálhat ilyet? vagy vmelyik hálózati eszköz rendetlenkedik, és ha kicserélem a madzagokat és a (zyxel) switchet, várhatok javulást? merre induljak el?köszönettel,
gEz elég nehezen távgyógyítható témakör, és a sarki pistike nem biztos, hogy saját kútfőből meg tudja oldani okosba'
Ha meg a kasszarendszert hivatalosan supportáló brigád cserélte sok pénzért a komplett gépet ahelyett, hogy megvizsgálta volna, hogy
1) hálózati kapcsolat elég stabil-e kábelteszterrel, és ha szükséges, akkor kábel újrakrimpelés RÁ VALÓ dugóval */komplett kábel csere, ha a régi menthetetlen
2) gépen jól van-e beállítva a DB connection string (pl. servert keresi-e a helyben futó Firebird példány helyett)
Akkor toll a fülükbe.
*: Tömör fali kábel vs egyenes késes UTP csatiról tudnék órákat mesélni...
-
tm5
tag
Egy ASP-s weboldallal szeretnék csatlakozni Oracle SQL adatbázishoz.
Ezzel mintával próbálkoztam, de nem sikerült:
OLE DB
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.cursorlocation=adUseClient ' requires use of adovbs.inc; numeric value is 3
DSNTest="Provider=MSDAORA.1;Password=pass;User ID=name;Data Source=data.world"
Conn.open DSNtest
%>Korábban MS SQL-hez volt ez az oldal használva, de most az Oracle-lel kellene összebarátkoztatni.

SQL Developerben tnsnames.ora fájllal csatlakozok az adatbázishoz, a lekérdezések írásához.
Itt van néhány példa arra, hogy hogyan lehet megadni egy Connection String-et Oracle-höz úgy, hogy ne akarjon az OLEDB tnsnames.ora-t használni. Azért, mert az sql developer látja, azért még az OLEDB nem biztos, hogy fogja látni.
-
galocza
aktív tag
halihó,
szeretném előrebocsátani, hogy tökhülye vagyok adatbáziskezelőkkel kapcsolatban, de a problémát le tudom írni, és tán némi iránymutatást tudtok adni.
munkahelyemen van 3 "kassza" kliensgép, amelyek egy külön szervergépről tápálkoznak adatokkal (firebird 2.5).
az egyik gép néha teljesen más adatokat mutat, mint a többi három, beleértve a szervert - mintha a változások hozzá nem jutnának el: hiányoznak rendszerüzenetek, készletek változásai stb. a dolog szépsége, hogy ez a gép komplett cserén esett át pár hónapja, előtte és utána is mutatta ezt a furcsaságot. hozzátartozik, hogy gyanítom, hogy a rendszergazdák nem telepítették újra sem a firebird-öt, sem az azt kezelő programot - csak átpakolták az egész hóbelevancot az új gépre.
a kérdésem: mi okozhatja a fenti problémát? adatbáziskezelő csinálhat ilyet? vagy vmelyik hálózati eszköz rendetlenkedik, és ha kicserélem a madzagokat és a (zyxel) switchet, várhatok javulást? merre induljak el?köszönettel,
g -
DS39
nagyúr
Egy ASP-s weboldallal szeretnék csatlakozni Oracle SQL adatbázishoz.
Ezzel mintával próbálkoztam, de nem sikerült:
OLE DB
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.cursorlocation=adUseClient ' requires use of adovbs.inc; numeric value is 3
DSNTest="Provider=MSDAORA.1;Password=pass;User ID=name;Data Source=data.world"
Conn.open DSNtest
%>Korábban MS SQL-hez volt ez az oldal használva, de most az Oracle-lel kellene összebarátkoztatni.

SQL Developerben tnsnames.ora fájllal csatlakozok az adatbázishoz, a lekérdezések írásához.
-
Petya25
őstag
-
Petya25
őstag
Szia
Esetleg arra valami tipp, hogy a deny rajta van a view-n, de db_owner a user, akkor miért nem él a deny? Elvileg ha valamit adsz, de letiíltod, akkor a tiltás erősebb nem? -
Fecogame
veterán
mysqldump futását hogyan lehet felgyorsítani?
Jelenleg az alábbi parancsot futtatom az egyes DB-k lementésére:
mysqldump --opt -Q -u $mysqluser --password=$mysqlpwd $DBname > /backup/path/DB.sql
Működik jól ( export is hibátlan ), viszont nagyon lassú a művelet. 19MB-os DB-t 70 másodperc alatt ment le. Ami főleg azért probléma, mert 20 külön adatbázisom van, vagyis egy teljes mentési folyamat több, mint 20 percig tart.
-
weiss
addikt
Értem. Kösz fiúk!
-
martonx
veterán
A trigger használata követhetetlenné teszi a kódot, hogy mikor mi, miért történik. Láttam már olyan kódot, hol nagyon a triggerekre alapoztak, aztán egy idő után már senki nem tudta megmondani, hogy mi, miért történik, mikor mi mit triggerel, majd végül miért okoznak a triggerek deadlockot.
Ettől még lehet értelme a triggereknek, ahogy NyuNyu is mondta, de tipikusan nem a kódolás megspórolása miatt kell őket használni, hanem amikor tényleg valami annyira belső dolgát kell az adatbázisnak rendben tartani. -
nyunyu
félisten
PHPből hívott tákolt eljárásnak átadod paraméterként a módosítandó értékeken kívül az elkövetőt is, aztán nem egy insert lesz benne, hanem egy másiodikkal a napló táblába szúrod az elkövetőt, tetthelyet, időbélyeget?
Trigger nagyon jó arra, hogy kikényszerítsd az adatbázis konzisztenciát, de annak jelentős teljesítményvesztés az ára.
-
weiss
addikt
-
martonx
veterán
Nos, ezért sem kell triggereket használni, erre meg pláne nem.
-
weiss
addikt
Sziasztok, volna egy sqlite kérdésem. Szeretném logolni a változtatásokat egy táblán, és hogy ki csinálta őket, így adja magát a trigger. Hogy lehetne "lecsorgatni" a triggernek, hogy ki volt az elkövető /ezt perpill csak a PHP tudja/ úgy, hogy a táblában nem tároljuk le ezt?
-
velizare
nagyúr
-
updog
őstag
Most akkor PIVOT/UNPIVOT azért van kilőve, mert nem használható, vagy mert nem sikerült megoldani vele?
with data as
(
select * from t_test
unpivot (value for val in (val1, val2, val3, val4, val5))
)
select a, b, c from (select val, value, label from data)
pivot (min(value) for label in ('A' as a, 'B' as b, 'C' as c))
order by val;
...mert nem sikerült

A kettőt felváltva próbálgattam, kombinálva nem. Köszi, pont azt csinálja, amit szeretnék!
-
velizare
nagyúr
-
velizare
nagyúr
-
bambano
titán
és ha megmondtad volna, hogy milyen adatbázis...
postgresql-hez van erre külön tool, illetve az is megoldás lehet, ha kidumpolod az adatbázist úgy, hogy csak a sémát tolja ki, az adatot nem, és azt összediffeled. -
velizare
nagyúr
van valami quick and fancy módja, hogy két nagyon hasonló adatbázisban összehasonlítsam a view és tábladeklarációkat? van pár ezer...
-
bpx
őstag
Sziasztok!
Oracleben csak SQL használatával van lehetőség bármilyen módon transzponálni fix oszlop- és sorszámú eredményhalmazt aggregálás nélkül? (tehát pivot/unpivot kilőve, legalábbis én nem tudtam megoldani vele, mert nincs kapaszkodó hozzá)

Most akkor PIVOT/UNPIVOT azért van kilőve, mert nem használható, vagy mert nem sikerült megoldani vele?
with data as
(
select * from t_test
unpivot (value for val in (val1, val2, val3, val4, val5))
)
select a, b, c from (select val, value, label from data)
pivot (min(value) for label in ('A' as a, 'B' as b, 'C' as c))
order by val; -
updog
őstag
Sziasztok!
Oracleben csak SQL használatával van lehetőség bármilyen módon transzponálni fix oszlop- és sorszámú eredményhalmazt aggregálás nélkül? (tehát pivot/unpivot kilőve, legalábbis én nem tudtam megoldani vele, mert nincs kapaszkodó hozzá)

-
mr.nagy
tag
A megoldás.
- ki kell pattintani az adatok egy kulturáltabb formába
- meghatározni, hogy az igény kevesebb vagy több, mint a rendelkezésre álló mennyiség
- amennyiben kevesebb a rendelkezésre álló mennyiség, akkor arányosan mindenki kevesebbet kap (csak egész értéket)
- a maradékokat szétosztjuk úgy, hogy a legkisebb igénytől a legnagyobbig emelkedő sorrendben kapnak kompenzációtNézd el nekem, hogy a kiosztandó mennyiséget ennyi_van néven konstansként tettem bele, de kicsit már késő van

create table NormalTeszt
(
igeny_id integer,
igeny_elem char(3),
mennyiseg integer
);INSERT INTO NormalTeszt
([igeny_id], [igeny_elem], [mennyiseg])
VALUES ('1', 'P01', '3'), ('1', 'P02', '5'), ('1', 'P03', '7'), ('1', 'P04', '6'), ('1', 'P05', '8'), ('1', 'P06', '9'),
('1', 'P07', '4'), ('1', 'P08', '5'), ('1', 'P09', '3'), ('1', 'P10', '4')
;select
igeny_id,
ennyi_van,
igeny,
igeny_elem,
sorszam,
mennyiseg,
case when
ennyi_van - igeny < 0
and ennyi_van - uj_total > 0
and sorszam <= (ennyi_van - uj_total) then uj_mennyiseg + 1
else uj_mennyiseg
end as kiosztott
from (
select
igeny_id,
ennyi_van,
igeny,
igeny_elem,
mennyiseg,
sorszam,
case when ennyi_van / igeny < 1
then cast(mennyiseg * (ennyi_van / igeny ) as integer)
else mennyiseg end as uj_mennyiseg,
sum(case when ennyi_van / igeny < 1
then cast(mennyiseg * (ennyi_van / igeny ) as integer)
else mennyiseg end)
over(partition by igeny_id) as uj_total
from (
SELECT
t.igeny_id,
cast(40 as decimal (5,2)) as ennyi_van,
t.igeny_elem,
t.mennyiseg,
row_number() over(partition by t.igeny_id order by mennyiseg asc) as sorszam,
cast(sum(t.mennyiseg) over(partition by t.igeny_id) as decimal(5,2)) as igeny
FROM NormalTeszt as t) as t1
) t2
order by sorszamSzia,
köszönöm, hétfőn kipróbálom, ha normális gép közelében leszek!
-
VirsLee
támogató
A megoldás.
- ki kell pattintani az adatok egy kulturáltabb formába
- meghatározni, hogy az igény kevesebb vagy több, mint a rendelkezésre álló mennyiség
- amennyiben kevesebb a rendelkezésre álló mennyiség, akkor arányosan mindenki kevesebbet kap (csak egész értéket)
- a maradékokat szétosztjuk úgy, hogy a legkisebb igénytől a legnagyobbig emelkedő sorrendben kapnak kompenzációtNézd el nekem, hogy a kiosztandó mennyiséget ennyi_van néven konstansként tettem bele, de kicsit már késő van

create table NormalTeszt
(
igeny_id integer,
igeny_elem char(3),
mennyiseg integer
);INSERT INTO NormalTeszt
([igeny_id], [igeny_elem], [mennyiseg])
VALUES ('1', 'P01', '3'), ('1', 'P02', '5'), ('1', 'P03', '7'), ('1', 'P04', '6'), ('1', 'P05', '8'), ('1', 'P06', '9'),
('1', 'P07', '4'), ('1', 'P08', '5'), ('1', 'P09', '3'), ('1', 'P10', '4')
;select
igeny_id,
ennyi_van,
igeny,
igeny_elem,
sorszam,
mennyiseg,
case when
ennyi_van - igeny < 0
and ennyi_van - uj_total > 0
and sorszam <= (ennyi_van - uj_total) then uj_mennyiseg + 1
else uj_mennyiseg
end as kiosztott
from (
select
igeny_id,
ennyi_van,
igeny,
igeny_elem,
mennyiseg,
sorszam,
case when ennyi_van / igeny < 1
then cast(mennyiseg * (ennyi_van / igeny ) as integer)
else mennyiseg end as uj_mennyiseg,
sum(case when ennyi_van / igeny < 1
then cast(mennyiseg * (ennyi_van / igeny ) as integer)
else mennyiseg end)
over(partition by igeny_id) as uj_total
from (
SELECT
t.igeny_id,
cast(40 as decimal (5,2)) as ennyi_van,
t.igeny_elem,
t.mennyiseg,
row_number() over(partition by t.igeny_id order by mennyiseg asc) as sorszam,
cast(sum(t.mennyiseg) over(partition by t.igeny_id) as decimal(5,2)) as igeny
FROM NormalTeszt as t) as t1
) t2
order by sorszam -
Petya25
őstag
Megoldás lehetne a külön táblába szervezés csak kicsit macerás.
Azért köszönöm, kipróbálom ezt is. -
sztanozs
veterán
Ne abban a táblában tartsd azokat a mezőket.
Select *-ra lejön minden mező.Le lehet tiltani bizonyos mezőkhöz való hozzáférést:
DENY SELECT ON dbo.tabla(mezo) TO [felhasznalo vagy role];
A legjobb ha letiltasz minden SELCT-et és írsz olyan VIEW-kat, amit szeretnél elérhetővé tenni. -
Petya25
őstag
Hali
MS SQL-ben egy tábla pár mezőjét el kellene bitozonyos felhasználók elöl elrejteni.
Gyakorlatilag lekérdezésban ez select * from-ra se látszódjon.
A tábla proprties-nél a "Column permissions" szürke.
Valami tipp? -
mr.nagy
tag
-
varsam
őstag
Új hozzászólás Aktív témák
-
3800 - 3701
6041 - 6001 6000 - 5901 5900 - 5801 5800 - 5701 5700 - 5601 5600 - 5501 5500 - 5401 5400 - 5301 5300 - 5201 5200 - 5101 5100 - 5001 5000 - 4901 4900 - 4801 4800 - 4701 4700 - 4601 4600 - 4501 4500 - 4401 4400 - 4301 4300 - 4201 4200 - 4101 4100 - 4001 4000 - 3901 3900 - 3801 3800 - 3701 3700 - 3601 3600 - 3501 3500 - 3401 3400 - 3301 3300 - 3201 3200 - 3101 3100 - 3001 3000 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Fórumok
- Szoftverfejlesztés
- SQL kérdések
- (kiemelt téma)
- Okos otthon - Home Assistant, openHAB és más nyílt rendszerek
- Samsung Galaxy Felhasználók OFF topicja
- Kerékpárosok, bringások ide!
- Nintendo Switch
- GL.iNet Flint 2 (GL-MT6000) router
- Filmvilág
- Autós kamerák
- LEGO klub
- Tíz éve tépte fel ismét a pokol kapuit a DOOM
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- További aktív témák...
- iKing.hu Apple iPhone 12 mini 64GB Black használt megkímélt 100% akku 6 hónap garancia
- HP Z420 Workstation,Xeon E5-1620 CPU,8GB RAM,500GB SATA3 HDD,WIN10
- Sok Extra! Playstation Portal 6 hó garancia, számlával!
- HIBÁTLAN iPhone 12 Pro 256GB Gold -2 ÉV GARANCIA - Kártyafüggetlen, MS5550, 100% AKKSI
- Bomba ár! Asus ZenBook UX433 - i7-10G I 16GB I 512SSD I 14" FHD I HDMI I Cam I W11 I Gari!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest








