Cari pengguna yang melawati hanya satu bandar dan bukannya berbilang bandar dalam MySQL [pendua]
P粉764785924
P粉764785924 2023-07-24 22:47:07
0
1
469

Saya mempunyai jadual dengan ID pengguna, bandar dan tarikh tempahan. Saya perlu mengetahui pengguna yang melawat hanya satu bandar dan bukan beberapa bandar dalam julat tarikh.

SELECT ID Pengguna, bandar, COUNT(*) sebagai hasilnya DARIPADA lawatan WHERE start_ts >= 1675209600 -- 1675209600 = 01.02.2023 00:00 DAN end_ts <= 1676419200 -- 1676419200 = 15.2.2023 00:00 KUMPULAN MENGIKUT user_id, city
user_id city hasil
10 Munich 1
11 Barcelona 2
11 Berlin 1
12 Barcelona 1
13 Prague 2
11 Barcelona 1
13 Berlin 1

ID Pengguna 10 dan 12 hanya melawat satu bandar. Contohnya, ID pengguna 11 melawat Barcelona dua kali.

Saya telah mencuba menggunakan NOT EXISTING dan INNER JOIN. Bagaimana untuk mendapatkan pengguna yang hanya melawat satu bandar?


P粉764785924
P粉764785924

membalas semua (1)
P粉147747637

Sila tambah syarat HAVING pada pertanyaan anda:

SELECT user_id, city, COUNT(*) as result FROM visits WHERE start_ts >= 1675209600 -- 1675209600 = 01.02.2023 00:00 AND end_ts <= 1676419200 -- 1676419200 = 15.2.2023 00:00 GROUP BY user_id, city HAVING result = 1

Jika anda hanya perlu mengira bilangan bandar unik, anda boleh menggunakan COUNT(DISTINCT(city)) dan mengalih keluarnya daripada kumpulan seperti ini:

SELECT user_id, city, COUNT(DISTINCT(city)) as result FROM visits WHERE start_ts >= 1675209600 -- 1675209600 = 01.02.2023 00:00 AND end_ts <= 1676419200 -- 1676419200 = 15.2.2023 00:00 GROUP BY user_id HAVING result = 1
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!