Javier te acerco otra forma para hacelo, esto me lo envio Ezequiel Martinez
miembro de este foro ante la misma pregunta que yo les hice, espero que te
sirva
row_number() over (PARTITION BY campo1
ORDER BY campo2 ASC)
Aca te paso lo que encontre de la documentación del comando. Si queres
podes que te devuelva unicamente el primer valor o el ultimo valor.-
Syntax
row_number::=
Description of the illustration row_number.gif
See Also:
"Analytic Functions " for information on syntax, semantics, and
restrictions
Purpose
ROW_NUMBER is an analytic function. It assigns a unique number to each row
to which it is applied (either each row in the partition or each row
returned by the query), in the ordered sequence of rows specified in the
order_by_clause, beginning with 1.
By nesting a subquery using ROW_NUMBER inside a query that retrieves the
ROW_NUMBER values for a specified range, you can find a precise subset of
rows from the results of the inner query. This use of the function lets you
implement top-N, bottom-N, and inner-N reporting. For consistent results,
the query must ensure a deterministic sort order.
You cannot use ROW_NUMBER or any other analytic function for expr. That is,
you cannot nest analytic functions, but you can use other built-in function
expressions for expr. Please refer to "About SQL Expressions " for
information on valid forms of expr.
Examples
For each department in the sample table oe.employees, the following example
assigns numbers to each row in order of employee's hire date:
SELECT department_id, last_name, employee_id, ROW_NUMBER()
OVER (PARTITION BY department_id ORDER BY employee_id) AS emp_id
FROM employees;
DEPARTMENT_ID LAST_NAME EMPLOYEE_ID EMP_ID
------------- ------------------------- ----------- ----------
10 Whalen 200 1
20 Hartstein 201 1
20 Fay 202 2
30 Raphaely 114 1
30 Khoo 115 2
30 Baida 116 3
30 Tobias 117 4
30 Himuro 118 5
30 Colmenares 119 6
40 Mavris 203 1
. . .
100 Popp 113 6
110 Higgins 205 1
110 Gietz 206 2
ROW_NUMBER is a nondeterministic function. However, employee_id is a unique
key, so the results of this application of the function are deterministic.
See Also:
FIRST_VALUE and LAST_VALUE for examples of nondeterministic behavior
The following inner-N query selects all rows from the employees table but
returns only the fifty-first through one-hundredth row:
SELECT last_name FROM
(SELECT last_name, ROW_NUMBER() over (order by last_name) R FROM employees)
WHERE R BETWEEN 51 and 100;
JCanizares@zhumi
r.com Para:
cc:
02/02/2005 19:20 Asunto: [DBAOracle] TopTen
Por favor,
responda a
AdminBDOracle
Hola a todos,
Estoy intentando elaborar el top-ten de los mejores clientes de ventas.
No se como especificar en el select que presente el total de ventas de los
10 mejores clientes de la empresa, si alguien tiene alguna idea de como
hacer este SELECT les agradezco mucho.
Saludos.
Att.
Ing. Javier Cañizares P.
Dpto. Desarrollo y Tecnología
Grupo Zhumir
Telf: 2806-333 Ext. 113
Hola a todos,
Estoy intentando elaborar el top-ten de los mejores clientes de ventas.
No se como especificar en el select que presente el total de ventas de los
10 mejores clientes de la empresa, si alguien tiene alguna idea de como
hacer este SELECT les agradezco mucho.
Saludos.
Att.
Ing. Javier Cañizares P.
Dpto. Desarrollo y Tecnología
Grupo Zhumir
Telf: 2806-333 Ext. 113
------------------------------
AdminBDOracle:
Administración de Bases de Datos Oracle
------------------------------
Direcciones de la lista:
Publicar un mensaje:
AdminBDOracle@...
Suscribirse........:
AdminBDOracle-Subscribe@...
Desuscribirse......:
AdminBDOracle-Unsubscribe@...
Administrador......:
AdminBDOracle-Owner@...
Página de la lista.:
http://www.gruposyahoo.com.ar/group/AdminBDOracle
------------------------------
http://www.navegana.com/dinero/chanzes.html
Patrocinio de Yahoo! Grupos
Enlaces a Yahoo! Grupos
Para visitar tu grupo en la web, accede a :
http://es.groups.yahoo.com/group/AdminBDOracle/
Para cancelar tu suscripción a este grupo, envía un mensaje a:
AdminBDOracle-unsubscribe@yahoogroups.com
El uso que hagas de Yahoo! Grupos está sujeto a las Condiciones del
servicio de Yahoo!.
********************************************************************************\
******
AVISO LEGAL:
Este mensaje y sus anexos son confidenciales y para el uso exclusivo
por parte del titular de la direccion de correo electronico a la que esta
dirigido,
puede contener informacion amparada por el secreto bancario o
cuyo uso inadecuado puede derivar en responsabilidad civil para el usuario o
configurar los delitos previstos en los articulos 153 a 157 del Codigo Penal,
por lo que su contenido no debe ser copiado, enviado, revelado o utilizado
en cualquier forma no autorizada expresamente por el emisor.
En caso de que Ud. no sea el destinatario especificado en
este mensaje o persona debidamente autorizada por el mismo,
por favor informe tal situacion reenviando el mensaje y/o sus
anexos al administrador de correo (
postmaster@...)
El emisor no acepta responsabilidad alguna por errores
u omisiones contenidos en este mensaje o sus anexos,
ni garantiza la seguridad,exactitud de lo transmitido
por este medio debido a que el mismo puede ser
objeto de intercepcion, alteracion, demora, perdida,
contener virus informaticos u otras anomalias.
BANCO COLUMBIA
********************************************************************************\
******