Saya mencoba mencapai yang berikut ini di MySQL (lihat pseudo
kode)
SELECT DISTINCT gid
FROM `gd`
WHERE COUNT(*) > 10
ORDER BY lastupdated DESC
Apakah ada cara untuk melakukan ini tanpa menggunakan (PILIH ...) dalam klausa WHERE karena itu akan tampak seperti pemborosan sumber daya.
mysql
count
aggregation
having
shgnInc
sumber
sumber
AND ((stock = 1 OR quantity > 0) OR (COUNT(v.id) > 0)
HAVING variations > 0 OR (stock = 1 OR quantity > 0)
Saya tidak yakin tentang apa yang Anda coba lakukan ... mungkin sesuatu seperti
sumber
num
. +1 tetap untuk sintaks bersih (bisa jadi setup saya, atau ms ... ahh well).Sunting (jika Anda hanya menginginkan gids):
sumber
mencoba
sumber
Hanya versi akademis tanpa klausa:
sumber
Tidak boleh ada fungsi agregat (mis. COUNT, MAX, dll.) Dalam klausa WHERE. Karenanya, kami menggunakan klausa HAVING. Karenanya seluruh permintaan akan serupa dengan ini:
sumber
- Mencari stasiun cuaca dengan catatan setengah jam yang hilang
- variasi yapiskan dengan tempat .. di .. pilih
sumber
saya pikir Anda tidak dapat menambahkan
count()
denganwhere
. sekarang lihat mengapa ....where
tidak sama denganhaving
,having
berarti Anda bekerja atau berhadapan dengan kelompok dan pekerjaan menghitung yang sama, itu juga berurusan dengan seluruh kelompok,sekarang bagaimana menghitungnya berfungsi sebagai kelompok keseluruhan
buat tabel dan masukkan beberapa id lalu gunakan:
Anda akan menemukan nilai total berarti menunjukkan beberapa grup! demikian
where
juga ditambahkan dengancount()
;sumber
sumber