Saya cuba mencipta pertanyaan mysql untuk melihat jadual tempat pertanyaan carian disimpan. Pertanyaan ini cuba mendapatkan semua baris yang sepadan dengan kriteria berikut:
>=
untuk datingPertanyaan ini tidak berfungsi tetapi harus memberikan gambaran keseluruhan tentang perkara yang saya cuba lakukan:
SELECT * FROM `analytics` WHERE `date` >= '2021-01-01' GROUP BY `query` HAVING COUNT(*) >= 3 AND GROUP BY `user` HAVING COUNT(*) >= 2 ORDER BY id DESC;
Contoh data
id | Pengguna | Pertanyaan | Tarikh |
---|---|---|---|
1 | 5 | Apa itu anjing | 2021-01-01 |
2 | 5 | Apa itu anjing | 2021-01-01 |
3 | 6 | Apa itu anjing | 2021-01-01 |
4 | 7 | Apa itu anjing | 2021-01-01 |
5 | 7 | Apa itu saudara | 2021-01-01 |
Contoh SQL
SELECT * FROM analytics WHERE date >= '2021-01-01' GROUP BY query HAVING COUNT(*) >= 3 AND GROUP BY user HAVING COUNT(*) >= 2 ORDER BY id DESC;
Menggunakan nilai yang ditetapkan dalam pertanyaan di atas, satu baris harus dikembalikan untuk pertanyaan "Apakah itu anjing", semua lajur lain adalah tidak penting.
Saya tahu anda boleh KUMPULAN MENGIKUT lajur yang berasingan dengan koma, tetapi saya tidak dapat memikirkan cara untuk menetapkan nilai yang berbeza untuk setiap lajur.
Anda boleh menetapkan kedua-dua syarat dalam klausa
HAVING
yang sama: