from ejemplos consultas sql sql-server sql-server-2005 tsql

ejemplos - Consulta de SQL Server-Seleccionando COUNT(*) con DISTINCT



select*from(select*from table) sql server (7)

Cuente todos los nombres de programas DISTINCT por tipo de programa y número de inserción

SELECT COUNT(DISTINCT program_name) AS Count, program_type AS [Type] FROM cm_production WHERE push_number=@push_number GROUP BY program_type

DISTINCT COUNT (*) devolverá una fila por cada cuenta única. Lo que desea es COUNT ( expresión DISTINCT) : evalúa la expresión de cada fila en un grupo y devuelve el número de valores únicos, no nulos.

En SQL Server 2005 tengo una tabla cm_production que enumera todo el código que se ha puesto en producción. La tabla tiene un ticket_number, program_type y program_name y push_number junto con algunas otras columnas.

OBJETIVO: contar todos los nombres de los programas DISTINCT por tipo de programa y número de inserción

Lo que tengo hasta ahora es:

SELECT DISTINCT COUNT(*) AS Count, program_type AS [Type] FROM cm_production WHERE push_number=@push_number GROUP BY program_type

Esto me lleva parcialmente allí, pero está contando todos los nombres de programas, no los distintos (lo cual no espero que haga en esa consulta). Supongo que no puedo entender cómo decirle que solo cuente los distintos nombres de los programas sin seleccionarlos. O algo.


Este es un buen ejemplo en el que desea obtener un recuento de Pincode almacenado en el último campo de dirección

SELECT DISTINCT RIGHT (address, 6), count(*) AS count FROM datafile WHERE address IS NOT NULL GROUP BY RIGHT (address, 6)


Necesitaba obtener el número de ocurrencias de cada valor distinto. La columna contenía información de la región. La simple consulta SQL con la que terminé fue:

SELECT Region, count(*) FROM item WHERE Region is not null GROUP BY Region

Lo que me daría una lista como, digamos:

Region, count Denmark, 4 Sweden, 1 USA, 10


Tienes que crear una tabla temporal para las distintas columnas y luego consultar el recuento de esa tabla

SELECT COUNT(*) FROM (SELECT DISTINCT column1,column2 FROM tablename WHERE condition ) as dt

aqui dt es una tabla temporal


prueba esto:

SELECT COUNT(program_name) AS [Count],program_type AS [Type] FROM (SELECT DISTINCT program_name,program_type FROM cm_production WHERE push_number=@push_number ) dt GROUP BY program_type


SELECT COUNT(DISTINCT program_name) AS Count, program_type AS [Type] FROM cm_production WHERE push_number=@push_number GROUP BY program_type


select count (distinct NumTar),''PROPIAS'' from ATM_TRANe with (nolock) where Fecha>=''2014-01-01'' AND Fecha<=''2015-05-31''and NetDestino=0 and SystemCodResp=0 group by NetDestino union select sum (contar),''FORANEAS'' from ( select count(distinct NumTar) as contar from ATM_TRANe with (nolock) where Fecha>=''2014-01-01'' AND Fecha<=''2014-01-31'' and NetDestino!=0 and SystemCodResp=0 group by NetDestino )dt