2010-11-09 22 views
14

TABLE quotationmysql count valores de fila exclusiva

id clientid 
1 25 
2 25 
3 25 
4 25 
5 26 

¿Cómo puedo consultar el número de clientes diferentes existen en TABLE quotation? No quiero que las entradas duplicadas se cuenten más de una vez.

Necesito que la respuesta sea 2, en 1 fila, porque las únicas entradas no duplicadas son (25, 26).

+1

Su título es engañoso: no está contando las filas duplicadas, sino el número único de filas. El recuento de filas duplicadas devolvería "4", ya que hay 4 filas que tienen el mismo valor para clientid. – Konerak

+0

Se propuso editar el título/texto de la pregunta, ya que esta pregunta es actualmente el principal hit de google para "mysql count duplicate entries". –

Respuesta

35
select count(distinct clientid) from quotation 

read more

2

que encontrar una salida

SELECT COUNT(*) as total FROM (SELECT COUNT(*) FROM quotation GROUP BY 
clientid) t1 
0
SELECT clientid, COUNT(clientid) FROM quotation 
GROUP BY clientid 
+0

Esto no obtiene el recuento total de clientes como: "seleccionar recuento (clientid distinto) de la cita" –

1

He intentado lo siguiente en una base de datos MySQL 5.x.

id es un número entero y clientid es un número entero. Me pobladas con dos filas:

consulta
id clientid 
1 25 
2 25 

Esta SQL imprimirá las filas que tienen exactamente 2 elementos:

select * from test1 group by clientid having count(*) = 2; 

Si desea 2 o más elementos, reemplace = 2 en el ejemplo anterior con >= 2.

select * from test1 group by clientid having count(*) >= 2; 
1

Si desea contar el número total de entradas únicas, esto devolverá un número en el recuento de columnas.

SELECT COUNT(*) as total FROM (SELECT COUNT(*) FROM quotation GROUP BY clientid having count(*) > 1) t1 

Si desea contar el número total de entradas con filas duplicadas, utilice el siguiente mysql.

SELECT COUNT(*) as total FROM (SELECT COUNT(*) FROM quotation GROUP BY clientid having count(*) >= 2) t1