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