Simple: je voudrais compter le nombre de lignes de la sous-requête. Notez que l' état indique si l'hôte est en ligne ou non.
Mauvais code
SELECT COUNT(ip_address) FROM `ports` (
SELECT DISTINCT ip_address FROM `ports` WHERE status IS TRUE
)
Expliqué
La première requête, lorsqu'elle est exécutée seule, renvoie ceci:
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 deuxième requête exécutée seule retourne ceci:
SELECT COUNT(ip_address) FROM `ports`
17
Question
Je voudrais savoir comment compter cette liste de 5 adresses IP.
J'ai cherché en ligne des solutions possibles à ce problème simple et je suis simplement frustré, alors j'ai pensé demander aux experts.
SELECT COUNT(*) FROM (select * from bme_wk_umatch_ug where rdbname = 'xxx) as tocount;
j'ai dû utiliser le concept original OPs car je vais compter les lignes dans une sous-requête INTERSECT.Vous devez déplacer le
DISTINCT
versCOUNT()
:Cela revient
5
car il ne compte que des valeurs distinctes et la sous-requête n'est plus nécessaire.Cependant, cette requête renvoie
17
car il y a 17 lignes dans laports
table:Voir ce SQL Fiddle .
Exemples de données avec 17 lignes et 5 adresses IP distinctes:
la source