Saya memiliki tabel seperti ini, tetapi dengan baris 1mi:

+------+-----------------+
| TEAM | VISITATION DATE |
+------+-----------------+
|  1   |    02/02/2021   |
|  1   |    04/03/2021   |
|  1   |    10/04/2021   |
|  2   |    13/03/2021   |
|  3   |    01/03/2021   |
|  3   |    27/04/2021   |
|  4   |    21/02/2021   |
|  4   |    14/03/2021   |
|  4   |    01/04/2021   |
+------+-----------------+

Dan saya ingin tahu berapa banyak TIM yang dikunjungi N kali.

Misalnya, jika saya ingin tahu berapa banyak TIM yang dikunjungi sekali, hasilnya adalah 1 (karena hanya tim 2). Jika saya ingin tiga kali, hasilnya adalah 2 (karena tim 1 dan 4 dikunjungi tiga kali).

Itu akan menjadi sesuatu seperti

SELECT COUNT(TEAM) 
FROM table 
WHERE COUNT(VISITATION DATE)=1 

(lalu =2, =3, dan seterusnya)... Tapi karena saya tidak bisa menggunakan COUNT setelah WHERE, saya tidak tahu bagaimana melakukannya. Adakah yang bisa membantu?

Jika membantu, tidak perlu dihubungkan dengan tanggal kunjungan. Bisa jadi "Berapa banyak TIM muncul sekali/dua kali/tiga kali... (hanya mempertimbangkan kolom TIM)"

Terima kasih sebelumnya!

sql
1
lulu 12 Mei 2021, 22:25

3 jawaban

Jawaban Terbaik
select count(team) from 
(select  team, COUNT(team) as countTeam from t group by team) 
where countTeam = 2

Ganti 2 dengan angka yang Anda inginkan.

Demo

2
pro_gamer 12 Mei 2021, 19:40

Anda dapat menggunakan klausa having

select 
    team,
    COUNT(TEAM) as total_count
from table 
group by
    team
having count(team) = 1 
0
zealous 12 Mei 2021, 23:52

Dengan having kita memiliki:

select  
    team, 
    COUNT(team) as countTeam 
from t 
group by team
having count(team) = 2
2
anaconda 12 Mei 2021, 19:48