Jump to content

filtrar linha em sql


iniciante
 Share

Recommended Posts

boas pessoal. eu tenho este select que esta a ir buscar dados a 2 tabelas diferentes:

select local_paragem.nome as "Destino mais utilizado", count(etapa.destino) as Numero_de_paragens
from etapa, local_paragem
where etapa.destino =  local_paragem.id  
group by local_paragem.nome
order by Numero_de_paragens desc

e tem como resultado o seguinte:

Destino mais utilizado          NUMERO_DE_PARAGENS   

----------------------------------

coimbra                                14                   

lisboa                                  5                     

porto                                    3                     

barcelona                            3                     

Lyon                                    2                     

albufeira                              2                     

faro                                      2                     

Paris                                    1                     

madrid                                1                     

valencia                              1           

a minha duvida é: como é que eu com aquele select posso fazer aparecer a 1 linha da solução, ou seja, aquela em que o numero de paragens é maior??         

RC

Link to comment
Share on other sites

Só queres mostrar a primeira linha na query, é isso?

Se sim, qual é a base de dados?

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Em Oracle usas ROWNUM na cláusula Where. O RowNum é um contador/identificador de linhas do resultado/cursor.

Podes ver mais informação aqui: http://www.oracle.com/technology/oramag/oracle/06-sep/o56asktom.html

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

sim eu ja tenha feito isso

--o local de paragem mais vezes utilizado como destino--
select local_paragem.nome as "Destino mais utilizado", count(*) as Numero_de_paragens 
from etapa, local_paragem
where etapa.destino =  local_paragem.id and rownum=1
group by local_paragem.nome
order by Numero_de_paragens desc

so que o numero de paragens vai aparecer 1 em vez de 14 =s

RC

Link to comment
Share on other sites

Tens de filtrar o resultado final e não a query original.

Experimenta assim:

Select * 
from (
select local_paragem.nome as "Destino mais utilizado", count(*) as Numero_de_paragens
from etapa, local_paragem
where etapa.destino =  local_paragem.id
group by local_paragem.nome
order by Numero_de_paragens desc
)
where rownum=1

Isto deve funcionar, embora possa haver formas mais inteligentes de o fazer.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.