Simple: me gustaría contar el número de filas de la subconsulta. Tenga en cuenta que el estado es si el host está en línea o no.
Código malo
SELECT COUNT(ip_address) FROM `ports` (
SELECT DISTINCT ip_address FROM `ports` WHERE status IS TRUE
)
Explicado
La primera consulta, cuando se ejecuta por sí sola, devuelve esto:
SELECT DISTINCT ip_address FROM `ports` WHERE status IS TRUE
ip_address
192.168.1.1
192.168.1.2
192.168.1.248
192.168.1.251
192.168.1.254
La segunda consulta ejecutada por sí sola devuelve esto:
SELECT COUNT(ip_address) FROM `ports`
17
Pregunta
Me gustaría saber cómo contar esa lista de 5 direcciones IP.
He estado buscando en línea posibles soluciones a este simple problema y me estaba frustrando, así que pensé en preguntar a los expertos.
SELECT COUNT(*) FROM (select * from bme_wk_umatch_ug where rdbname = 'xxx) as tocount;
tuve que usar el concepto original de OP porque voy a contar las filas en una subconsulta INTERSECT.Debe mover el
DISTINCT
aCOUNT()
:Esto regresa
5
porque solo cuenta valores distintos y la subconsulta ya no es necesaria.Sin embargo, esta consulta regresa
17
porque hay 17 filas en laports
tabla:Ver este SQL Fiddle .
Datos de muestra con 17 filas y 5 IP distintas:
fuente