Sederhana: Saya ingin menghitung jumlah baris dari sub-kueri. Perhatikan bahwa status adalah apakah tuan rumah sedang online atau tidak.
Kode salah
SELECT COUNT(ip_address) FROM `ports` (
SELECT DISTINCT ip_address FROM `ports` WHERE status IS TRUE
)
Dijelaskan
Kueri pertama, saat dijalankan dengan sendirinya mengembalikan ini:
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
Permintaan kedua berjalan dengan sendirinya mengembalikan ini:
SELECT COUNT(ip_address) FROM `ports`
17
Pertanyaan
Saya ingin tahu bagaimana cara menghitung daftar 5 alamat IP itu.
Saya telah mencari secara online solusi yang mungkin untuk masalah sederhana ini dan menjadi frustrasi, jadi saya pikir akan bertanya kepada para ahli.
SELECT COUNT(*) FROM (select * from bme_wk_umatch_ug where rdbname = 'xxx) as tocount;
Saya harus menggunakan konsep asli OPs karena saya akan menghitung baris dalam subquery INTERSECT.Anda harus memindahkan
DISTINCT
keCOUNT()
:Ini mengembalikan
5
karena hanya menghitung nilai yang berbeda dan subquery tidak diperlukan lagi.Namun kueri ini kembali
17
karena ada 17 baris dalamports
tabel:Lihat SQL Fiddle ini .
Sampel data dengan 17 baris dan 5 IP berbeda:
sumber