SQL SELECT con DISTINCT en múltiples columnas

author
2 minutes, 15 seconds Read

Descripción

También se pueden añadir múltiples campos con la cláusula DISTINCT. DISTINCT eliminará aquellas filas en las que todos los campos seleccionados sean idénticos.

Aquí hay una consulta simple sobre algunas columnas seleccionadas en la tabla de pedidos donde agent_code=’A002′

Tabla de ejemplo : pedidos

Código SQL:

SELECT agent_code, ord_amount, cust_code, ord_numFROM orders WHERE agent_code='A002';

Salida:

La imagen de arriba muestra que el mismo agent_code, ord_amount y cust_code aparece más de una vez en la tabla de pedidos.

Ejemplo : select with distinct on two columns

Para obtener las filas idénticas (basadas en dos columnas agent_code y ord_amount) una vez de la tabla orders ,se puede utilizar la siguiente sentencia sql :

Código SQL:

SELECT distinct agent_code,ord_amountFROM orders WHERE agent_code='A002';

Salida:

Presentación pictórica de la consulta anterior :

Ejemplo : select with distinct on three columns

Para obtener las filas idénticas (basadas en tres columnas agent_code, ord_amount y cust_code) una vez de la tabla ‘orders’ ,se puede utilizar la siguiente sentencia sql :

Código SQL:

 SELECT distinct agent_code, ord_amount,cust_code FROM orders WHERE agent_code='A002';

Salida:

Presentación gráfica de la consulta anterior :

Ejemplo : seleccionar con distintivo en todas las columnas de la primera consulta

Para obtener las filas idénticas (en cuatro columnas agent_code, ord_amount, cust_code y ord_num) una vez de la tabla ‘orders’ ,se puede utilizar la siguiente sentencia sql :

select distinct agent_code,ord_amount,cust_code,ord_num from orders WHERE agent_code='A002';

Salida:

En la salida anterior, todas las filas cuyo agent_code es ‘A002’ han sido devueltas porque no hay filas idénticas en agent_code, ord_amount, cust_code y ord_num. Vea la siguiente presentación :

Presentación gráfica de la consulta anterior :

Seleccionar con distintivo en múltiples columnas y cláusula order by

Puede utilizar una cláusula order by en la sentencia select con distintivo en múltiples columnas. Aquí hay un ejemplo :

 SELECT distinct agent_code,ord_amount FROM orders WHERE agent_code='A002' order by ord_amount;

Salida:

Función count() y select con distinct en múltiples columnas

Puede utilizar la función count() en una sentencia select con distinct en múltiples columnas para contar las filas distintas. Aquí hay un ejemplo :

 select count(*) from ( SELECT distinct agent_code, ord_amount,cust_code FROM orders WHERE agent_code='A002');

Salida:

La salida de dicha sentencia SQL que se muestra aquí se toma utilizando Oracle Database 10g Express Edition.

Similar Posts

Deja una respuesta

Tu dirección de correo electrónico no será publicada.