Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 11 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
SQL jednoduchy select

Registrovaný: 23.12.10
Prihlásený: 10.09.22
Príspevky: 1056
Témy: 157
Bydlisko: KK/PP/BA
Príspevok NapísalOffline : 07.05.2014 17:09

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
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 07.05.2014 17:23

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!
Offline

Užívateľ
Užívateľ
SQL jednoduchy select

Registrovaný: 15.01.07
Prihlásený: 23.09.15
Príspevky: 186
Témy: 3
Bydlisko: ZV/BA
Príspevok NapísalOffline : 08.05.2014 3:44

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" } "
Offline

Užívateľ
Užívateľ
SQL jednoduchy select

Registrovaný: 23.12.10
Prihlásený: 10.09.22
Príspevky: 1056
Témy: 157
Bydlisko: KK/PP/BA
Príspevok Napísal autor témyOffline : 08.05.2014 12:05

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
Offline

Užívateľ
Užívateľ
SQL jednoduchy select

Registrovaný: 15.01.07
Prihlásený: 23.09.15
Príspevky: 186
Témy: 3
Bydlisko: ZV/BA
Príspevok NapísalOffline : 08.05.2014 13:37

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" } "
Offline

Čestný člen
Čestný člen
SQL jednoduchy select

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 08.05.2014 14:55

Pripadne rovno ROW_NUMBER() :-)


Offline

Užívateľ
Užívateľ
SQL jednoduchy select

Registrovaný: 23.12.10
Prihlásený: 10.09.22
Príspevky: 1056
Témy: 157
Bydlisko: KK/PP/BA
Príspevok Napísal autor témyOffline : 08.05.2014 19:43

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
Offline

Užívateľ
Užívateľ
SQL jednoduchy select

Registrovaný: 15.01.07
Prihlásený: 23.09.15
Príspevky: 186
Témy: 3
Bydlisko: ZV/BA
Príspevok NapísalOffline : 08.05.2014 22:21

eee, myslim, ze to penalty_rank by malo byt c2.penalty_rank (chybicky no, :D), 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" } "
Offline

Užívateľ
Užívateľ
SQL jednoduchy select

Registrovaný: 23.12.10
Prihlásený: 10.09.22
Príspevky: 1056
Témy: 157
Bydlisko: KK/PP/BA
Príspevok Napísal autor témyOffline : 12.05.2014 15:06

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
Offline

Čestný člen
Čestný člen
SQL jednoduchy select

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 12.05.2014 16:34

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;


Offline

Užívateľ
Užívateľ
SQL jednoduchy select

Registrovaný: 23.12.10
Prihlásený: 10.09.22
Príspevky: 1056
Témy: 157
Bydlisko: KK/PP/BA
Príspevok Napísal autor témyOffline : 24.05.2014 20:04

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 :oops:
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
Odpovedať na tému [ Príspevkov: 11 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. SQL INSERT INTO SELECT

v Databázy

1

467

18.10.2015 15:48

BX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Sql Select,. velmi velka databaza,.

v PHP, ASP

9

581

02.12.2009 13:34

KViki Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. formular: presun <option> zo <select> do <select>

v JavaScript, VBScript, Ajax

2

745

28.09.2009 15:27

tomast7 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Jednoduchý RS

v Redakčné systémy

5

744

18.07.2016 11:04

hatto13 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. jednoduchy login

v Ostatné

7

587

05.09.2013 14:03

vama Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Jednoduchy Search

v PHP, ASP

6

749

10.05.2009 13:29

jtomcik Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Jednoduchý zoznam

v HTML, XHTML, XML, CSS

12

819

19.06.2010 13:20

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Jednoduchý mobil

v Mobilné zariadenia

2

341

30.03.2013 22:16

Mego Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Jednoduchy PC

v PC zostavy

18

716

13.07.2016 7:29

Ivan-K Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Jednoduchy script

v JavaScript, VBScript, Ajax

10

851

18.12.2008 15:32

Draex Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. jednoduchy UPDATE

v Databázy

11

676

20.05.2010 14:56

coldak Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Jednoduchý layout

v HTML, XHTML, XML, CSS

5

624

17.09.2012 9:32

iNviNho Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. jednoduchy anitispam

v PHP, ASP

1

552

22.11.2009 7:51

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Jednoduchý CMS

v Redakčné systémy

1

1876

01.03.2008 18:57

Toxic Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Jednoduchý program assembler

v Assembler, C, C++, Pascal, Java

5

1427

27.11.2007 20:45

knorr Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Jednoduchý redakčný systém

v Redakčné systémy

2

383

17.06.2014 11:46

hatto13 Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra