Stránka: 1 z 1
| [ Príspevkov: 11 ] | |
Autor | Správa |
---|
Registrovaný: 23.12.10 Prihlásený: 10.09.22 Príspevky: 1056 Témy: 157 | 157 Bydlisko: KK/PP/BA |
Zdravim. Potrebujem urobit jednoduchy select. Mam kniznicu (Library), v nej su zakaznici(Customers), ktory maju urcite pokuty za oneskorene vratenie knihy (Penalty). Select: 5 ľudia s najvyššími pokutami. Jeden vyber uz mam: Kód: select c2.first_name, c2.last_name from (select c.* from CUSTOMERS c where c.PENALTY IS NOT NULL order BY c.PENALTY DESC) c2 where rownum <= 5
No potrebujem este jeden, ktory vyberie to iste, len inym sposobom. Budem totizto robit testy. Riesenie mam: vybrat vsetko z tabulky, utriedit podla pokut, a LOOPom vyberiem prvych 5 zakaznikov. To riesenie sa mi vsak velmi nepozdava. Ma niekto lepsi napad?
_________________ HP ProBook 4530s Intel® Core™ i5-2430M (2.4GHz, 3MB, 2 jadrá)*4GB 1333MHz DDR3*ATI Mobility Radeon HD 6490 1GB + Intel HD Graphics 3000*640GB SATA 5400RPM *Windows 7 Home Premium 64 bitová verzia Lenovo IdeaPad Z50-70 Intel Core i5 4210 Haswell* NVIDIA GeForce GT 840M 4GB + Intel HD Graphics 4000*SSHD 1TB 5400 otáčok + 8GB cache*RAM 4GB* Full HD (1920 × 1080)*Windows 10 pro
Boh je reálny, pokial nebol deklarovaný ako integer |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
Kód: SELECT * FROM customers ORDER BY penalty DESC LIMIT 5
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 15.01.07 Prihlásený: 23.09.15 Príspevky: 186 Témy: 3 | 3 Bydlisko: ZV/BA |
LIMIT nejde na Oracle DBS, na to pozor, je to feature pre MySQL, PostGre atd. (ak teda nemas oracle, to co pisal BX je druhy sposob)
_________________ nb: Lenovo Thinkpad E520 (starsi pan uz), Fedora 20 / Win7 dualboot " 1000.times { puts "I will not spam on the boards" } " |
|
Registrovaný: 23.12.10 Prihlásený: 10.09.22 Príspevky: 1056 Témy: 157 | 157 Bydlisko: KK/PP/BA |
No praveze to robim v ORACLE SQL developer...
_________________ HP ProBook 4530s Intel® Core™ i5-2430M (2.4GHz, 3MB, 2 jadrá)*4GB 1333MHz DDR3*ATI Mobility Radeon HD 6490 1GB + Intel HD Graphics 3000*640GB SATA 5400RPM *Windows 7 Home Premium 64 bitová verzia Lenovo IdeaPad Z50-70 Intel Core i5 4210 Haswell* NVIDIA GeForce GT 840M 4GB + Intel HD Graphics 4000*SSHD 1TB 5400 otáčok + 8GB cache*RAM 4GB* Full HD (1920 × 1080)*Windows 10 pro
Boh je reálny, pokial nebol deklarovaný ako integer |
|
Registrovaný: 15.01.07 Prihlásený: 23.09.15 Príspevky: 186 Témy: 3 | 3 Bydlisko: ZV/BA |
hmm, da sa pouzit este funkcia rank() myslim, od Oracle 9, priklad: Kód: SELECT ename, sal FROM ( SELECT ename, sal, RANK() OVER (ORDER BY sal) sal_rank FROM emp ) WHERE sal_rank <= 10;
cize to tvoje by som skusil Kód: SELECT c2.first_name, c2.last_name FROM (SELECT c.*, RANK() OVER (ORDER BY c.penalty) penalty_rank FROM customers c WHERE c.penalty IS NOT NULL) WHERE penalty_rank <= 5;
_________________ nb: Lenovo Thinkpad E520 (starsi pan uz), Fedora 20 / Win7 dualboot " 1000.times { puts "I will not spam on the boards" } " |
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 | 34 Bydlisko: Brno |
Pripadne rovno ROW_NUMBER()
|
|
Registrovaný: 23.12.10 Prihlásený: 10.09.22 Príspevky: 1056 Témy: 157 | 157 Bydlisko: KK/PP/BA |
Dakujem. Matwej: tvoje riesenie funguje, ale tu poslednu podmienku ignoruje, teda selectne viacej riadkov(v mojom pripade 7) Citácia: SELECT c2.first_name, c2.last_name FROM (SELECT c.*, RANK() OVER (ORDER BY c.penalty DESC) penalty_rank FROM customers c WHERE c.penalty IS NOT NULL) c2 WHERE penalty_rank <= 5;
Pre uplnost
_________________ HP ProBook 4530s Intel® Core™ i5-2430M (2.4GHz, 3MB, 2 jadrá)*4GB 1333MHz DDR3*ATI Mobility Radeon HD 6490 1GB + Intel HD Graphics 3000*640GB SATA 5400RPM *Windows 7 Home Premium 64 bitová verzia Lenovo IdeaPad Z50-70 Intel Core i5 4210 Haswell* NVIDIA GeForce GT 840M 4GB + Intel HD Graphics 4000*SSHD 1TB 5400 otáčok + 8GB cache*RAM 4GB* Full HD (1920 × 1080)*Windows 10 pro
Boh je reálny, pokial nebol deklarovaný ako integer |
|
Registrovaný: 15.01.07 Prihlásený: 23.09.15 Príspevky: 186 Témy: 3 | 3 Bydlisko: ZV/BA |
eee, myslim, ze to penalty_rank by malo byt c2.penalty_rank (chybicky no, ), skus ci to pojde
_________________ nb: Lenovo Thinkpad E520 (starsi pan uz), Fedora 20 / Win7 dualboot " 1000.times { puts "I will not spam on the boards" } " |
|
Registrovaný: 23.12.10 Prihlásený: 10.09.22 Príspevky: 1056 Témy: 157 | 157 Bydlisko: KK/PP/BA |
Nefunguje to Cez row_number() nieco mam, len neviem, ako vyberiem 5 zaznamov: Kód: SELECT c.FIRST_NAME, c.LAST_NAME, c.PENALTY, ROW_NUMBER() OVER (ORDER BY c.PENALTY DESC) FROM CUSTOMERS c WHERE c.PENALTY IS NOT NULL;
_________________ HP ProBook 4530s Intel® Core™ i5-2430M (2.4GHz, 3MB, 2 jadrá)*4GB 1333MHz DDR3*ATI Mobility Radeon HD 6490 1GB + Intel HD Graphics 3000*640GB SATA 5400RPM *Windows 7 Home Premium 64 bitová verzia Lenovo IdeaPad Z50-70 Intel Core i5 4210 Haswell* NVIDIA GeForce GT 840M 4GB + Intel HD Graphics 4000*SSHD 1TB 5400 otáčok + 8GB cache*RAM 4GB* Full HD (1920 × 1080)*Windows 10 pro
Boh je reálny, pokial nebol deklarovaný ako integer |
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 | 34 Bydlisko: Brno |
Vnoreny select? Kód: SELECT first_name, last_name, penalty FROM (SELECT c.FIRST_NAME, c.LAST_NAME, c.PENALTY, ROW_NUMBER() riadok OVER (ORDER BY c.PENALTY DESC) FROM CUSTOMERS c WHERE c.PENALTY IS NOT NULL) WHERE riadok <= 5;
|
|
Registrovaný: 23.12.10 Prihlásený: 10.09.22 Príspevky: 1056 Témy: 157 | 157 Bydlisko: KK/PP/BA |
Dakujem za pomoc. Vypisuje to chybnu specifikaciu: Citácia: 30484. 00000 - "missing window specification for this function" *Cause: All window functions should be followed by window specification, like <function>(<argument list>) OVER (<window specification>) *Action:
Aj by som si to sam opravil, no netusim kde je chyba. // Vazne by som to potreboval. Uz som napisal 1300 riadkov v package(cursors, podmienky, cykly...) ale s tymto trivialnym reportom si neviem pomoct Do zajtra to musim odovzdat.
Posledné oživenie urobil F3RY dňa 24.05.2014 20:04
_________________ HP ProBook 4530s Intel® Core™ i5-2430M (2.4GHz, 3MB, 2 jadrá)*4GB 1333MHz DDR3*ATI Mobility Radeon HD 6490 1GB + Intel HD Graphics 3000*640GB SATA 5400RPM *Windows 7 Home Premium 64 bitová verzia Lenovo IdeaPad Z50-70 Intel Core i5 4210 Haswell* NVIDIA GeForce GT 840M 4GB + Intel HD Graphics 4000*SSHD 1TB 5400 otáčok + 8GB cache*RAM 4GB* Full HD (1920 × 1080)*Windows 10 pro
Boh je reálny, pokial nebol deklarovaný ako integer |
|
Stránka: 1 z 1
| [ Príspevkov: 11 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v Databázy | 1 | 501 | 18.10.2015 15:48 BX | | v PHP, ASP | 9 | 613 | 02.12.2009 13:34 KViki | | v JavaScript, VBScript, Ajax | 2 | 794 | 28.09.2009 15:27 tomast7 | | v PC zostavy | 18 | 803 | 13.07.2016 7:29 Ivan-K | | v JavaScript, VBScript, Ajax | 10 | 926 | 18.12.2008 15:32 Draex | | v Databázy | 11 | 732 | 20.05.2010 14:56 coldak | | v HTML, XHTML, XML, CSS | 5 | 673 | 17.09.2012 9:32 iNviNho | | v PHP, ASP | 1 | 622 | 22.11.2009 7:51 stenley | | v Redakčné systémy | 1 | 1951 | 01.03.2008 18:57 Toxic | | v PHP, ASP | 6 | 799 | 10.05.2009 13:29 jtomcik | | v Redakčné systémy | 5 | 819 | 18.07.2016 11:04 hatto13 | | v Ostatné | 7 | 661 | 05.09.2013 14:03 vama | | v HTML, XHTML, XML, CSS | 12 | 885 | 19.06.2010 13:20 shaggy | | v Mobilné zariadenia | 2 | 406 | 30.03.2013 22:16 Mego | | v Kôš | 1 | 28 | 01.07.2020 14:16 michalesku | | v Ostatné | 3 | 494 | 24.06.2012 11:36 Fico |
|