প্রথমে একটি টেবিল তৈরি করা যাক:
mysql> create table DemoTable -> ( -> UserId int -> ); Query OK, 0 rows affected (0.48 sec)
কিছু রেকর্ড ইনসার্ট করা যাক:
mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values(20); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values(30); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.09 sec) mysql> insert into DemoTable values(20); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable values(30); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable values(20); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable values(20); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(40); Query OK, 1 row affected (0.21 sec)
SELECT স্টেটমেন্ট দিয়ে সব রেকর্ড দেখানো যাক:
mysql> select *from DemoTable;
আউটপুট
+----------+ | UserId | +----------+ | 10 | | 20 | | 30 | | 10 | | 10 | | 20 | | 30 | | 10 | | 20 | | 20 | | 40 | +----------+ 11 rows in set (0.00 sec)
MySQL টেবিলে ৩ বা তার বেশি বার উপস্থিত মানগুলোর সারি গণনা করার কোয়েরি:
mysql> select count(*) -> from (select UserId, count(*) as total -> from DemoTable group by UserId -> )tbl -> where total >=3;
এটি নিচের আউটপুট দেবে (মানের ১০ এবং ২০ তিন বা তার বেশি বার উপস্থিত। তাই গণনা ২টি মানের জন্য):
আউটপুট
+----------+ | count(*) | +----------+ | 2 | +----------+ 1 row in set (0.01 sec)
ব্যাখ্যা: সাবকোয়েরি প্রথমে প্রতিটি UserId-এর ফ্রিকোয়েন্সি বের করে, তারপর বাহ্যিক কোয়েরি সেটি ফিল্টার করে যাদের ফ্রিকোয়েন্সি ≥ ৩।