- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Sony MILC fényképezőgépcsalád
- Videós, mozgóképes topik
- VR topik (Oculus Rift, stb.)
- Kormányok / autós szimulátorok topicja
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Szünetmentes tápegységek (UPS)
- PLC programozás
- 3D nyomtatás
Hirdetés
-
KuKirin G4 - a sebesség ára
ma Meglehetősen erős gép ez, amivel óriásit lehet taknyolni, de néhány módosítással egy igen kedvező árú rollerré alakítható.
-
Nem szavazza meg Musk 56 milliárd dolláros csomagját a norvég állami vagyonalap
it Az 1,7 billió dollárt kezelő norvég állami vagyonalap jelezte: nem szavazzák meg Elon Musk 56 milliárd dolláros juttatási csomagját a Teslánál.
-
Computex 2024: újfajta tápdizájn a Lian Li boszorkánykonyhájáról
ph Az L alakú Edge széria három kapacitással közeleg, és a legszerényebb variánsa kap egy picit olcsóbb kiadást, ami levehető mesh hálóval jön.
Új hozzászólás Aktív témák
-
Louro
őstag
Sziasztok!
A VB után most a PL/SQL Dev-vel ismerkedek. Itt van lehetőség arra, hogy például egy megadott mappából vegye az összes .csv kiterjesztésű fájlt, majd azokból csak bizonyos mezőket hozzak el és ezen felül a fájlnevet betöltsem egy mezőbe?
VB szkripttel ezt megoldottam, de itt nem találok a neten rá vonatkozó cikket.
Segítségetek előre is köszönöm!
Mess with the best / Die like the rest
-
Louro
őstag
Sziasztok!
Van arra lehetőség, hogy egy-egy találatot átnevezzek. Pl:
select * from somewhere
where 1=1
and 1st_IDX = case 1st_IDX when '1' then 'A' when '2' then 'B' when '3' then 'C' endNagyvonalakban ez lenne a kód. De sajnos inkább meg sem jeleníti a találatok ahol a 1st_IDX 1,2 vagy 3. (A példánál maradva.)
Segítségeket előre is köszönm!
Mess with the best / Die like the rest
-
Louro
őstag
válasz
rum-cajsz #2722 üzenetére
Szia,
decode-dal még nem néztem, de jó ötlet. Oracle az alap, de valamiért case esetén kiesnek az érintett sorok.
Decode-dal is megnéztem és úgyis csak kiejtette a találatokat.
A kód:
select id,name from somewhere
where 1=1
and decode (id, '1','A',
'2','B',
'3','C',
id) = idNem vagyok öregmotoros. Igyekszek a kérdéseim előtt azért utánanézni, szóval, ha kihagytam egy vesszőt, nem haragszok meg a segítségért
Mess with the best / Die like the rest
-
Louro
őstag
Sziasztok!
PL SQL-ben valahogy meg lehet nézni egy táblának, hogy az oszlopaira milyen szabály vonatkozik?
Gondolok itt arra, hogy
Oszlop1 varchar2(40)
Oszlop2 integer
Oszlop3 dateValami ilyesmi beépített funkció van rá?
Mess with the best / Die like the rest
-
Louro
őstag
válasz
Apollo17hu #2941 üzenetére
+1 erre. Én is ezzel a kettővel darabolnék, ha van egyértelmű szeparátor. Ha pedig fix hosszúságúak az azonosítók, akkor még könnyebb a dolgod. Akkor csak SUBSTR() kell.
Mess with the best / Die like the rest
-
Louro
őstag
Sziaszotk!
Adott a PL SQL.
Performancia vagy stabilitási gondot okozhat ha egy normál script közé beszúrok egy procedurát? Vagy le se futna? Procedurával még csak most ismerkedek. De elsőre úgy érzem a VB tapasztalat segíthet.
Pl.:
select * from táblanév;update....;
create table táblanév2 as select * from táblanév3;
begin
declare
end;select count(8) from táblanév2;
select count(8), count(distinct oszlopnév) from táblanév3;Mess with the best / Die like the rest
-
Louro
őstag
Igazából az a feladat, hogy van egy tábla, amiben van x darab rekord. Ez folyamatosan változik. A rekordokat 3 részre kell megadott feltételek mentén bontani.
Az új táblában pedig
- 3 kategória alapján megszámolni mennyi rekord van az első táblában.
- majd mindegyikhez növekvő sorszámot társítani.Ezt most úgy csináltam meg - és lefutott - kivettem a 3 kategória darabszámát az első táblából. Majd 3 ciklussal mellé tettem a növekvő sorszámot.
SQL-lel még kategóriánként meg tudom számoltatni, hogy melyikhez mennyi tartozik, de a növekvő sorszámot már nem. Mondanám, hogy 3 temp tábla, de akkor extra táblákat kellene létrehozni.SQL ismeretem kicsit jobb, mint kezdő, de messze nem merész amatőr.
Mess with the best / Die like the rest
-
Louro
őstag
válasz
martonx #3058 üzenetére
Megpróbálom leírni a lényeget.
Adott az első alaptábla. Ezek rendelések. Három kategória a K, L, M.
Két oszlopa van. Azon és DB
Legyen a tartalma:
K1 - 5
L1 - 3
M1 - 12
K2 - 8
M2 -10
K3 - 7Az lenne a cél, hogy egy másik táblában mellé tegyem, hogy hányadik rendelés a hónapban kategóriánként.. Van egy tábla, ahol gyűlnek a sorszámok.
K-ból már 3, L-ből 2, M-ből pedig 5 rögzített sorszám van.
Az elvárt az lenne az új táblában, hogy
K1 - 4
K2 - 5
K3 - 6
L1 - 3
M1 - 6
M2 - 7Remélem így kerekebb.
[ Szerkesztve ]
Mess with the best / Die like the rest
-
Louro
őstag
válasz
martonx #3060 üzenetére
Sziasztok,
@Apollo17hu : Köszönöm, jónak tűnik. Ma meglesem.
fiddle-t még nem használtam SQL-re, csak JAVA-s időkben.
De ez lenne a kód:
CREATE TABLE rendeles_db (
azon varchar2(10),
db number
);INSERT INTO rendeles ('K',1); --Első K rendelés
INSERT INTO rendeles ('K',2); --Második K rendelés
INSERT INTO rendeles ('L',1); --Első L rendelés
INSERT INTO rendeles ('M',1); --Első M rendelés
INSERT INTO rendeles ('L',2); --Második L rendelés
INSERT INTO rendeles ('K',3); --Harmadik K rendelés
COMMIT;CREATE TABLE rendeles_q (
azon varchar2(10),
rendeles_db number
);
--Itt a rendelésekhez tartozó darabszámot adjuk meg.
--A rendelésekhez pedig meg kellene mondani, hogy hányadik a hónapban.
INSERT INTO rendeles_q ('K',5);
INSERT INTO rendeles_q ('K',4);
INSERT INTO rendeles_q ('M',8);
INSERT INTO rendeles_q ('K',2);--Elvárt az lenne ne kézzel kelljen sorszámot adni a rendelésnek, hanem gép adja.
--Így nézne ki a temptábla, amit kapcsolótáblaként használnék fel:
--K,4
--K,5
--M,2
--K,6--Ha ez meglenne, akkor a rendelésekhez mellé tudnám tenni, hogy hányadik a hónapban.
--A rendeléshez az azonosító egyik eleme a sorszám.Köszönöm,
CsabiMess with the best / Die like the rest
-
Louro
őstag
Sziasztok!
Lehet elég bagatel kérdést fogok feltenni, de hátha van rá megoldás. (Vagyis van, mert Excel makróval meg tudom oldani.)
Adott egy .sql fájl. Benne rengeteg trigger (insert, update, temptáblák létrehozása,...). Van arra lehetőség DBMS Scheduler nélkül valahogy beütemezni?
Környezet: Oracle
Elérhető programok: Toad és PL SQL Dev 9Windows ütemező nem tudom milyen nyelvet igényel, de lehet van mégegyszerűbb megoldásotok is. Az Excel makróval az a gondom, hogy akkor az Excelt teljesen kilövöm a gépen, ha fut.
Válaszotok előre is köszönöm.
Mess with the best / Die like the rest
-
Louro
őstag
Szia,
powershell elindul. Régen még tanultam is. Megpróbálom elsőként abban megoldani.
Nem ragaszkodok a Windows saját ütemezőjéhez, de mivel nem vagyok admin, nem vagyok DBA, így korlátozottak a lehetőségeim. A DBMS Scheduler-ért küzdünk, de az nem 100%, hogy meglesz. Így a meglévő eszközökhöz nyúlnék.
Mess with the best / Die like the rest
-
Louro
őstag
Sziasztok!
Olyan lehet case-ben vizsgálni, hogy
case when 1=1 and 2=2 and 3=3 and
case when 4=4 and 5=5 then 'true' else 'false' end then 'jó' else 'nem jó' endHasonló vizsgálatot kellene végeznem, de nem találtam sehol se megoldást rá.
Lehetne rengeteg egymásban ágyazott case-zel megoldani, de reméltem, hogy pár sorban ezt letudom.
Nektek van egyéb ötletetek?
Mess with the best / Die like the rest
-
Louro
őstag
-
Louro
őstag
válasz
Apollo17hu #3132 üzenetére
Az a THEN 1, azért problémás és igyekeztem röviden megúszni a kódsort. A THEN után is még 10 sor legalább, amiből az eredmény származik. Megoldhatnám, hogy lekezelek külön mindent, de akkor a THEN utáni részt kellene sokszor bemásolni.
Mess with the best / Die like the rest
-
Louro
őstag
Sziasztok!
Adott egy SMSS 2008 R2 és egy VS 2008.
VS-ban elkészítenénk a package-et. A package dolga annyi lenne, hogy megfog egy .xls (nem .xlsx) fájlt és azt be kellene töltenie táblába.VS-ban futtatva simán végrehajtódnak a lépések.
Ahogy job-ot készítenénk rá SMSS-ben, elhasal a dolog. A netet feltúrva már átállítottuk 32 bitesre a job-ot.
Nektek esetleg ötlet, javaslat? .csv-t is próbáltuk. Azzal is hasonló. Kicsit más, de hasonló.
A hibaüzenet:
Executed as user: xxxxxxxxxx. Microsoft (R) SQL Server Execute Package Utility Version 10.50.6000.34 for 64-bit Copyright (C) Microsoft Corporation 2010. All rights reserved. Started: 9:03:32 AM Error: 2017-06-13 09:03:34.35 Code: 0xC00F9304 Source: filename Connection manager "Excel Connection Manager" Description: SSIS Error Code DTS_E_OLEDB_EXCEL_NOT_SUPPORTED: The Excel Connection Manager is not supported in the 64-bit version of SSIS, as no OLE DB provider is available. End Error Error: 2017-06-13 09:03:34.36 Code: 0xC020801C Source: filename_import 1 Excel Source [77] Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "Excel Connection Manager" failed with error code 0xC00F9304. There may be error messages posted before this with more information on why the AcquireConnection method call failed. End Error Error: 2017-06-13 09:03:34.37 Code: 0xC0047017 Source: filename_import 1 SSIS.Pipeline Description: component "Excel Source" (77) failed validation and returned error code 0xC020801C. End Error Error: 2017-06-13 09:03:34.37 Code: 0xC004700C Source: filename_import 1 SSIS.Pipeline Description: One or more component failed validation. End Error Error: 2017-06-13 09:03:34.37 Code: 0xC0024107 Source: filename_import 1 Description: There were errors during task validation. End Error DTExec: The package execution returned DTSER_FAILURE (1). Started: 9:03:32 AM Finished: 9:03:34 AM Elapsed: 1.888 seconds. The package execution failed. The step failed.Mess with the best / Die like the rest
-
Louro
őstag
válasz
Nicotin #4191 üzenetére
Szia,
mi nemrég kerestünk embert, akinek egy SELECT, egy JOIN és egy HAVING feladat volt. Kb. 20-ból 1 ment át. Már ennek is örültünk és fel is vettük
De nem is ez a lényeg. Volt olyan, nem is egy, aki emberileg jónak tűnt. Nekik felajánlottam, hogy tolják le az sqlzoo.net oldalt. 2 hét múlva hívja fel a HR-est és beszéljünk újra. Egyik se volt elég motivált, hogy visszatelefonáljon. Pedig az az oldal nagyon jó az alapokra. Volt egy diákunk, aki üresjárataiban 1,5-2 hét alatt kitolta és tudatosan használta. Ha meg elakadsz, a másik programozói tudást tudod fejleszteni, azaz guglizni kell. Rengeteg fórumon mutatnak megoldást. De azért 5 perc után nem érdemes rákeresni
Igaz ez a standard SQL, nem MySQL, de az alap menjen. Ha az alap betonstabil, akkor azzal is megoldod a legtöbb feladatot.
Kísérletezéshez a W3Shools.com/sql se rossz.
[ Szerkesztve ]
Mess with the best / Die like the rest
-
Louro
őstag
válasz
bambano #4197 üzenetére
A HAVING-et általában subselect-tel oldják meg az emberek. Az első kettő az nagyon alap. A 3. feladatnál csak arra voltam kíváncsi, hogy kétségbeesik vagy nem. HAVING simán helyettesíthető. Csak azzal elengánsabb.
Már a 2. olyan kolléga van mellettem, akik több év elemzés után nálunk találkozott a ROW_NUMBER()-rel. Én meg amikor autodidakta módon tanultam, annyira alapnak véltem.
De az se mindegy, hogy mennyi tábla van összekötve. Előző osztályvezetőnk olyan kódot írt, amiben legalább 15 tábla volt LEFT JOIN-nal összekötve. (MSSQL.) Tetű lassú volt. 4-4,5 órát futott. Azzal, hogy szétszedtem 4 részre, 20-30 perc alatt megvolt az eredmény. Semmi mást nem néztem, de van egy olyan érzésem, hogy lehetne performanciát javítani.
Itt arra akarok utalni, hogy nem elég, hogy valaki ismeri a főbb parancsokat, igényesnek is kell lenni és gondolni kell arra, hogy limitált az erőforrás. (A rengeteg temptábláról nem is beszélve. Egy hónapig takarítottam, a GDPR bevezetése előtt.)
Speciális dologkra interjún nem is kérdeztem, mert úgyis ott a gugli. Én is használom, ha elakadok vagy keresek gyorsabb, jobb megoldásokat. Hülyeségnek tartottam mindig, ha interjún valaki nagyon mély ismeretre kérdezz. A jelentkező is lehet tudna olyat kérdezni, amit meg az interjúztató nem tudna :/
[ Szerkesztve ]
Mess with the best / Die like the rest
-
Louro
őstag
válasz
martonx #4200 üzenetére
Gondolom nálatok is egy interjún, egy szimpla SELECT feladat láttán, ha azt kérné a jelentkező, hogy szóban elmondhatja e, hogy hogyan oldaná meg, ti is elkerekedett szemekkel kérnétek, hogy mondja. (Egy adatelemző ne beszéljen, kódoljon és értelmezzen
)
Előző munkahelyemen Oracle volt és ott a temptáblát a többsége simán CREATE TABLE-DROP megoldással kezelte. (Mondjuk én CTE-párti vagyok, de sok kifinomult megoldás van a szemét elkerülésére.)
Mess with the best / Die like the rest
-
Louro
őstag
válasz
RedHarlow #4205 üzenetére
Környezet? Oracle, SSMS, .... ? Ez eléggé függ attól.
Röviden azt mondanám általánosságban, hogy legyen egy IF elágazás, ahol megmondod, hogy az aktuális nap a hónap első napja, akkor fusson el, különben ugorja át. Majd ezt az egészet egy package-be
Én TSQL-lel is pakolok olykor ki, bár tudom, hogy nagyon retro és inkább SSIS kellene, de lusta vagyok egy exportra package-et készíteni
Mess with the best / Die like the rest
-
Louro
őstag
válasz
RedHarlow #4205 üzenetére
Hogy konkrétabb legyek (TSQL megoldás):
IF DAY(GETDATE()) = 1
BEGIN
--Leválogatás kitétele
EXEC master.dbo.xp_cmdshell 'sqlcmd -S "SERVERNAME" -d ADATBÁZISNÉV -E -o "C:\Windows\System32\passwords.txt" -Q "SELECT * FROM table" -W -w 999 -s";" '--Emailküldés
DECLARE @HTML VARCHAR(2000);SET @HTML = 'Ide azt pakolsz, amit szeretnél' ;
EXEC msdb.dbo.sp_send_dbmail
@recipients = 'címzett@itcafe.hu',
@subject = 'Tárgy',
@file_attachments = N'C:\Windows\System32\passwords.txt',
@body = @HTML,
@body_format = 'HTML';
ENDBeteheted napi futásba is, nem fogja elvinni az erőforrást. Vagy kihagyod az IF-es részt és a Schedule részben megadod, hogy minden hónap első napján fusson le.
Persze igényesebb megoldás lenne SSIS Package-be tenni. De feladat méretétől függ. Az apró lekérdezéseket inkább így oldom meg.
[ Szerkesztve ]
Mess with the best / Die like the rest
-
Louro
őstag
válasz
Petya25 #4216 üzenetére
Szia,
egy minta....bár ezért nem csípem az MSSQL-t....tengernyi sok CONVERT kell sokszor.
;WITH base AS (
SELECT GETDATE()-10 t
UNION
SELECT GETDATE()-8
UNION
SELECT GETDATE()
)
SELECT CONVERT(DATETIME,AVG(CONVERT(FLOAT,t)))
FROM BASESzóval először FLOAT-ba alakítod, majd a kapott átlagot visszaalakítod dátummá.Remélem tudtam segíteni.
[ Szerkesztve ]
Mess with the best / Die like the rest
-
Louro
őstag
Ha HH:MI:SS kell, akkor
SELECT CONVERT(CHAR,CONVERT(DATETIME,AVG(CONVERT(FLOAT,t))),108)
FROM BASEIdőt előbb FLOAT-ba alakítod, majd átlagolod. A számot utána dátummá visszakonvertálod és abból kiszeded az időpontot. Ha csak óra és perc kell, akkor CHAR(5)
Oracle után szinte falnak szaladtam ennyi konvertálás láttán. M$ eléggé köti az ebet a karóhoz az adattípusaival.
Mess with the best / Die like the rest
-
-
Louro
őstag
válasz
dellfanboy #4297 üzenetére
Valamilyen SQL megoldást nem támogatna a munkáltatód? Eleve 3 000 000 sorról beszélünk nagyjából. Access is elbírná, de hosszú távon lehet jobb lenne egy tartósabb megoldás.
Na meg rádobtok egy Tableau-t vagy PowerBI-t és nagyon csinos tud lenni
Az SQL, ha még nagyon új, akkor sqlzoo.net alapokra szerintem az egyik legjobb.
Access nekem a folyamatos Compact miatt volt nyűg, mert mindig nagyra hízott.
Mess with the best / Die like the rest
-
Louro
őstag
Sziasztok!
Adott két SQL Server 2008 R2. A kettő össze van kapcsolva (Linked Server). Az lenne a kérdésem, hogy ha a két szerver között akarok olyat, hogy A szerverről másolja át a táblákat napi szinten a B szerverre, mint egy backup, akkor melyik a gyorsabb a megoldás? T-SQL vagy a SSIS?
Jelenleg az előbbi van alkalmazásban, de ha tudok időt nyerni, akkor annak örülnék. Rengeteget gugliztam már a témában, de sajna nem találtam egyértelmű választ.
Köszi előre is a válaszokat!
Mess with the best / Die like the rest
-
Louro
őstag
Több 20gb+ tábla is van az átmásolandók között, ami emiatt több órát igényel. Szimplán csak át kell másolni a tábla teljes tartalmát. (Az oka, hogy ne az éles környezetet terheljük elemzési célból, hanem egy másolatot. Egy kartéziánus szorzat és megfektetjük az élest és hamar tartós szabadságra küldenek
. )
Lassúnak nem biztos, hogy lassú, de ha egy kicsit is tudok spórolni, akkor én hajlamos vagyok időt tenni bele. Kicsit kattanásom, hogy ha lehet jobban, akkor miért ne.
Az SQL replikációról megkérdezem a DBA-nkat. Én ezt nem használtam. Ennek is kicsit utánajárok
Mess with the best / Die like the rest
-
Louro
őstag
Köszi az infót. Általában éjfél után fél perccel indítjuk jelenleg is az átmásolást és van, hogy 7-ig is eltart :/ Az éles is lassan 1 terra. De ennek egy töredékéről készítünk tükörmásolatot.
Úgyis lassan várható egy kis fejlesztés a 2012-re. Lehet ezt a repikációt bedobom. A DBA-nk szerencsére jó szaki. Lehet tud is erről, csak több, mint 10 éve nem nyúltak a jelenlegi rendszerhez :/
Köszi mindkettőtöknek!
Mess with the best / Die like the rest
-
Louro
őstag
Amire nekünk kell, arra jó a T-1 napi adat. Így is csoda, hogy él a rendszer. Napközben nem nyüstöljük az éles rendszert. Én próbálkozok, hogy nyerjek egy kis erőforrást, mert amikor átvettem, akkor borzasztóan rosszul megírt szkriptek futottak ütemezetten
A következő kérdés lehetne, hogy a változásokat azonosítsuk. A rendszer olyan, hogy frissít több mezőbe szinte folyamatosan. Bár jogos, hogy azzal tudnánk nyerni, de a régi adatok beazonosítása, törlése, majd áttöltése lehet időigényesebb lenne.
Mess with the best / Die like the rest
-
Louro
őstag
Nem saját termékről van szó, hanem egy dobozos termékről, ami kötöttségekkel jár. Ezért az SQL server is. Rendelkezésre áll a SAS is, de arra átállni (backup esetén) meg idő lenne, amire persze nem szánnak időt. Rengeteg idő lenne a meglévő jobokat átírni
Én sok kis lépéssel próbálok javítani. Igazából szorgalmiként, mert mellette ott vannak a feladataim is :/
Mess with the best / Die like the rest
-
Louro
őstag
A rendszer egy dobozos termék. Az adatbázisa is adott. Azon változtatni nem tudunk. Ezért a második opció az életképes. Egy 2008->2012 frissítésért is kuncsorogni kellett
De így is lassan 10 éves lesz az új szoftver is. (Multikulti probléma.)
A DBA-nk optimalizálásba próbál segíteni, de mivel nem csak ezen dolgozik, így elég kevés ideje jut az ilyen dolgokra. Úgymond ránk bízza, hogy milyen kódot írunk. Ha több millió sor törlését indítjuk el vagy deadlock-ba botlunk, akkor természetesen jön és segít. De nem fér bele az idejébe, hogy monitorozza a tevékenységeinket.
Elvileg mi is meg tudjuk nézni a query plan-t és tudunk eszközölni javításokat. (De a felhasználók közül csak én vagyok olyan beteges, akinek számít a futási idő. Többieknek csak az számít, hogy lefusson.) Mondjuk meg szoktam osztani praktikákat, de onnan az ő felelősségük, hogy alkalmazzák-e.
A partícionáláson én is gondolkodok, mert van jó pár gyakran használt nagy táblánk, amin segítene. Csak elmagyarázni a többi felhasználónak, hogy mit hogyan.... IF vagy egy WHILE ciklusnál is teljes sötétség. Vagy, ha kell, inkább kézzel töltenek be 100 külső forrást, semmint ciklussal BULK INSERT-tel.
(Desszert: Egyik korábbi munkahelyemen meg VIEW-kat kezdtük el visszafordítani, hogy miből is épül és a 13. szint után feladtuk. VIEW-ra VIEW-t, majd arra VIEW-t építeni...Sok a szakbarbár a piacon, de persze ők sírnak a legjobban a pénzért.).
Bocsi a hosszért... Megyek eszek sütit. Nem panaszkodom. A replikációt biztos megbeszélem az DBA-val és a partícionálás nagyon terítéken van, mert sokat nyernénk vele.
Mess with the best / Die like the rest
-
Louro
őstag
válasz
formupest #4494 üzenetére
Szia,
ha jól értem lesz két tábla. A kettő között a kapcsolatot a "gyógyszerkészítmény" fogja adni.
Egyik táblában az összetételek lesznek. Feltételezem soronként. Kicsit furcsa lenne olyan struktúra, hogy összetétel1, összetétel2, összetétel3,.... .
Másik táblában a tulajdonságok lesznek. Feltételezem itt is soronként lesznek felsorolva a hatások.Ha a számomra "furcsa" megoldás van, akkor simán JOIN-nal összeköthetőek. Ugyanaz, mint a VLOOKUP az Excelben
A másik megoldás esetén simán mellé tenni, LEFT JOIN-nal nem érdemes, mert összes lehetséges párosítást adná vissza, ami biztos nem jó. PIVOT kicsit macera kezdőként.
Én személy szerint soronként tárolnám mindkét táblát. Az összetevőket és a tulajdonságokat is katalogizálnám. Azaz bevezetnék egy táblát, amiben egyes adatok kapnának egy azonosítót és a két táblában csak az azonosítókat kellene eltárolni. Később lehet meghálálja a rendszer és a tárhely. Például a penicilin szót eltárolni 9 karakter, de ha ez a 17-es kódú összetevő, akkor ez egy sokkal kisebb helyet igénylő adat.Példa:
1-es azonosítójú gyógyszerkészítmény eseténElső tábla
1 - összetevő: por
1 - összetevő: víz
1 - összetevő: penicilinMásik tábla:
1 - tulajdonság: Fejfájás
1 - tulajdonság: HányingerHa ezt kötöd össze, akkor ilyet kapnál:
1 - összetevő: por - tulajdonság: Fejfájás
1 - összetevő: víz - tulajdonság: Fejfájás
1 - összetevő: penicilin - tulajdonság: Fejfájás
1 - összetevő: por - tulajdonság: Hányinger
1 - összetevő: víz - tulajdonság: Hányinger
1 - összetevő: penicilin - tulajdonság: HányingerNa ez jó hosszú lett. Jó lenne ismerni a kiindulási alapot. Akár fake adatokkal összedobsz egyet a Google Drive-on, talán könnyebb lenne a megoldást megtalálni.
Mess with the best / Die like the rest
-
Louro
őstag
válasz
martonx #4496 üzenetére
Én a DBA-ra nem haragszok, mert lehet rá számítani, csak sajnos más feladatokat is ellát. (Munkaszervezésbeli hiba az IT részlegen (szerintem).)
Én egy kicsit IT vénával megáldottüzleti elemző vagyok. Nem csak megírom a SELECT-et, hanem a teljesítményre és az olvashatóságra is igyekszek figyelni. De amúgy értem amire utalsz.
@nyunyu (4497): Elvileg a 2008->2012 átállás már jóvá lett hagyva és jönne az UAT, de se neki nincs erre ideje, se nálunk, mert persze ez nem fontos a fejeseknek. Tesztelés nélkül biztos nem engedném. Az nagyon amatőr lenne. A jelenlegi helyzetben meg a VPN döcög. Amúgyis nehezebben halad a munka
Mess with the best / Die like the rest
-
Louro
őstag
[Személyes vélemény on]
Ez témába nem vág, csak a kérdésre válasz
:
A feladatok el vannak látva. Még plusz is. Többieknek segítek. Megosztom az infót és a társosztályoknak is segítek, amitől az osztály reputációja is nő. A fennmaradó időben próbálom javítani a rendszerünket, spórolni erőforrásokat. Amikor a jelenlegi helyemre kerültem, annyira nem volt kapacitás, hogy folyamatosan jobokkal dolgozott az adatbázisszerver. Volt, ami több, mint 3 órát futott. Kis átírással 10 perc alatt lefutott. (Több nagy tábla összekötve egy lekérdezésben, indexek nélkül. Ezeket szedtem szét több kisebb lépésre.)A fejeseknek az a fontos, hogy az ő felettük állók igényei ki legyenek szolgálva és persze mindenki fel akar valamit mutatni, de azzal nem foglalkozik, hogy a meglévő rendszerrel faragjon, mert túl kocka terület. Sajnos ilyennek miatt olyanok a nagyobb cégek rendszerei, amilyenek. Szívás minden fejlesztés.
[Személyes vélemény off]
[ Szerkesztve ]
Mess with the best / Die like the rest
-
Louro
őstag
Abszolút jogos a kérdés, mert van kollégám, aki senior elemző és a left join-t és a right join-t nem ésszel használja. Nem érti a különbséget. (Amúgy a bérsáv miatt lett senior :/ )
Ha nem adatbázis beállítása a kérdés, hanem egy lekérdezés, akkor szerintem sokan tudunk itt segíteni.
Mess with the best / Die like the rest
-
Louro
őstag
Én is mellőzöm a right join-t, mert az agyunk balról jobbra értelmez. De, amikor mondja, hogy mi a feladat és hogyan kezdet neki, akkor ott volt,hogy right kellett volna. Amikor nagyon junior voltam, szégyeltem volna olyan kérdéseket feltenni, mint amiket én kapok manapság.
A senior-nak is már ajánlottam az sqlzoo.net oldalt és tegnap találtam az Oracle oldalán is egy tök jó leírást kezdőknek, ahol elég sok példa mentén van elmagyarázva.
Kicsit ON is legyek. Már 8 éve SQL-ezek. Bár nem tartom magam veteránnak kódismeret szintjén, de 5 év Oracle és most 3 év T-SQL a hátam mögött kicsit tovább lépnék. DBA irány szimpatikus. Van olyan iskola, ami különösen ajánlott vagy nagyon kerülendő?
Mess with the best / Die like the rest
-
Louro
őstag
Bár multi, de a smucig fajta. Inkább önerőből oldom meg. A VBA-t és az SQL-t is autodidakta módon tanultam meg. De úgy érzem eljutottam arra a szintre, hogy ezt nem oldom meg önerőből.
Ahogy este olvasgattam, az SQL Server képzések szimpatikusabbnak tűnnek. Persze oda is kell más alapozó ismeret.
Eddig csak bőszen írtam az SQL-eket és próbáltam figyelni a performanciára.
Mess with the best / Die like the rest
-
Louro
őstag
Most jövök a kérdéseimmel
A képzések kapcsán végül a felhő alapú BI-t kezdtem el a M$ oldalán.
De párhuzamosan Python-t is.
Ezutóbbival kapcsolatban lenne egy olyan kérdésem, hogy mi lehet a Python mellett erős érv, amivel meg lehetne indokolni, hogy "kell a Python a gépekre"? Este a Stackoverflow-t olvasgatva nem nagyon találtam érvet a Python mellett. Értem, hogy az egyik egy lekérdező nyelv, másik pedig programozási. De mégis rengeteg adattudós (, de csúnya így magyarul) használ Python-t. Csak még nem látom hol jön a képbe. Aggregáció során SQL nyert. ETL során az adatok manipulálását SQL-ben is el tudnám végezni.
Elnézést, ha láma kérdés, de inkább kérdezek. (Tanulnom kell valamit, mert már pár éve csak toporgok az SQL-ben és nem hinném, hogy 20 év múlva is piacképes maradnék csak SQL-lel.)
[ Szerkesztve ]
Mess with the best / Die like the rest
-
Louro
őstag
válasz
martonx #4596 üzenetére
Köszönöm. Nekem is ez a legizgalmasabb a jelenlegi munkámban, bár többnyire SQL-ben oldom meg. Persze a vizualizáció Excel-ben történik - sajnos.
Esetleg tudsz mondani egy példát, hogy mi az, amit SQL-ben nem lehet vagy rosszabbul, mint Python-ban? De érzem, hogy pont a vizualizáció lesz a kulcs
Mess with the best / Die like the rest
-
Louro
őstag
-
Louro
őstag
Kicsit olyan ez, hogy mindkettő jó a feladatok nagy részére (, gondolok itt arra, hogy a rollup-ra pl. egy kezemen meg tudom számolni, hogy mennyiszer volt szükségem). De pl. a senior analyst kollégával nem bírom megérttetni, hogy miért felesleges Excel-ben pivotálni, miért nem bízza az erősebb SQL szerverre. Persze elbírja az Excel, csak kicsit lassabb és a felhasználói élmény csorbul.
Úgy látom bőven van mit tanulnom még. De ez jó, mert izgalmas terület
[ Szerkesztve ]
Mess with the best / Die like the rest
Új hozzászólás Aktív témák
- Diablo IV
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Az Apple is mesterséges intelligenciával turbózza fel a teljes kínálatot
- Xbox Games Showcase 2024 - Az összes bejelentés egy helyen!
- Politika
- Milyen autót vegyek?
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Nők, nőügyek (18+)
- Anglia - élmények, tapasztalatok
- TheLázs: ADHS
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen