[ 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 | 157
Bydlisko: KK/PP/BA
NapísalOffline : 07.05.2014 17:09 | SQL jednoduchy select

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 | 3
NapísalOffline : 07.05.2014 17:23 | SQL jednoduchy select

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 | 3
Bydlisko: ZV/BA
NapísalOffline : 08.05.2014 3:44 | SQL jednoduchy select

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 | 157
Bydlisko: KK/PP/BA
Napísal autor témyOffline : 08.05.2014 12:05 | SQL jednoduchy select

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 | 3
Bydlisko: ZV/BA
NapísalOffline : 08.05.2014 13:37 | SQL jednoduchy select

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 | 34
Bydlisko: Brno
NapísalOffline : 08.05.2014 14:55 | SQL jednoduchy select

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 | 157
Bydlisko: KK/PP/BA
Napísal autor témyOffline : 08.05.2014 19:43 | SQL jednoduchy select

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 | 3
Bydlisko: ZV/BA
NapísalOffline : 08.05.2014 22:21 | SQL jednoduchy select

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 | 157
Bydlisko: KK/PP/BA
Napísal autor témyOffline : 12.05.2014 15:06 | SQL jednoduchy select

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 | 34
Bydlisko: Brno
NapísalOffline : 12.05.2014 16:34 | SQL jednoduchy select

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 | 157
Bydlisko: KK/PP/BA
Napísal autor témyOffline : 24.05.2014 20:04 | SQL jednoduchy select

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
 [ Príspevkov: 11 ] 


SQL jednoduchy select



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

501

18.10.2015 15:48

BX

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

Sql Select,. velmi velka databaza,.

v PHP, ASP

9

613

02.12.2009 13:34

KViki

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

formular: presun <option> zo <select> do <select>

v JavaScript, VBScript, Ajax

2

794

28.09.2009 15:27

tomast7

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

Jednoduchy PC

v PC zostavy

18

803

13.07.2016 7:29

Ivan-K

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

Jednoduchy script

v JavaScript, VBScript, Ajax

10

926

18.12.2008 15:32

Draex

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

jednoduchy UPDATE

v Databázy

11

732

20.05.2010 14:56

coldak

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

Jednoduchý layout

v HTML, XHTML, XML, CSS

5

673

17.09.2012 9:32

iNviNho

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

jednoduchy anitispam

v PHP, ASP

1

622

22.11.2009 7:51

stenley

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

Jednoduchý CMS

v Redakčné systémy

1

1951

01.03.2008 18:57

Toxic

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

Jednoduchy Search

v PHP, ASP

6

799

10.05.2009 13:29

jtomcik

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

Jednoduchý RS

v Redakčné systémy

5

819

18.07.2016 11:04

hatto13

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

jednoduchy login

v Ostatné

7

661

05.09.2013 14:03

vama

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

Jednoduchý zoznam

v HTML, XHTML, XML, CSS

12

885

19.06.2010 13:20

shaggy

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

Jednoduchý mobil

v Mobilné zariadenia

2

406

30.03.2013 22:16

Mego

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

JEDNODUCHÝ BLIKAČ

v Kôš

1

28

01.07.2020 14:16

michalesku

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

Vlastný jednoduchý program

v Ostatné

3

494

24.06.2012 11:36

Fico



© 2005 - 2025 PCforum, edited by JanoF