COMO SUBSTITUIR O FIRST DO ACCES NO ORACLE
O First no Access retorna a primeira ocorrência de uma coluna num agrupamento
por exemplo
SELECT First(Endereco), Sum(Valor)
FROM Clientes
GROUP BY Numero
ORDER BY Numero
Retornaria o endereço e a soma dos valores para Numero
No Oracle não tem esse First como poderia substitui-lo?
por exemplo
SELECT First(Endereco), Sum(Valor)
FROM Clientes
GROUP BY Numero
ORDER BY Numero
Retornaria o endereço e a soma dos valores para Numero
No Oracle não tem esse First como poderia substitui-lo?
Seu ORDER BY Numero faz que o menor valor da soma fique na primeira linha logo poderia muito bem ser substituido pela função de agregação Min e não haveria necessidade do uso de First.
Teste os exemplos abaixo e veja se funcionam (não pude testá-los).
Com função de agregação:
SELECT Endereco, Min(Sum(Valor)) As Numero
FROM Clientes
GROUP BY Endereco
Ou com query correlacionada e ROWNUM.
SELECT s.Endereco, s.Numero
FROM ( SELECT Endereco, Sum(Valor) As Numero FROM Clientes GROUP BY Endereco ORDER BY 2 ) s
WHERE rownum = 1
ou ainda.
SELECT s.Endereco, Min(s.Numero)
FROM ( SELECT Endereco, Sum(Valor) As Numero FROM Clientes GROUP BY Endereco ) s
Teste os exemplos abaixo e veja se funcionam (não pude testá-los).
Com função de agregação:
SELECT Endereco, Min(Sum(Valor)) As Numero
FROM Clientes
GROUP BY Endereco
Ou com query correlacionada e ROWNUM.
SELECT s.Endereco, s.Numero
FROM ( SELECT Endereco, Sum(Valor) As Numero FROM Clientes GROUP BY Endereco ORDER BY 2 ) s
WHERE rownum = 1
ou ainda.
SELECT s.Endereco, Min(s.Numero)
FROM ( SELECT Endereco, Sum(Valor) As Numero FROM Clientes GROUP BY Endereco ) s
Tópico encerrado , respostas não são mais permitidas