কম্পিউটার

MySQL-এ DISTINCT বনাম GROUP BY নির্বাচন করবেন?


SELECT DISTINCT স্বতন্ত্র মান দিতে ব্যবহার করা যেতে পারে। ডুপ্লিকেট রেকর্ডগুলি সরাতে এটি ব্যবহার করুন এবং এটি সামগ্রিক ফাংশনের সাথেও ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ:MAX, AVG ইত্যাদি। এটি একটি একক কলামে প্রয়োগ করা যেতে পারে।

এখন, আমি একটি কলামের জন্য SELECT DISTINCT ব্যবহার করার জন্য একটি টেবিল তৈরি করছি। CREATE কমান্ড -

এর সাহায্যে একটি টেবিল তৈরি করা
mysql> CREATE TABLE DistinctDemo-> (-> id int,-> name varchar(100)-> );কোয়েরি ঠিক আছে, 0 সারি প্রভাবিত (0.64 সেকেন্ড)

রেকর্ড ঢোকানো হচ্ছে -

mysql> DistinctDemo মানগুলিতে ঢোকান(1,'John');কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.17 সেকেন্ড)mysql> DistinctDemo মানগুলিতে ঢোকান(2,'John');কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.18 সেকেন্ড) )mysql> DistinctDemo মানের মধ্যে ঢোকান> DistinctDemo মানের মধ্যে ঢোকান> 

SELECT কমান্ডের সাহায্যে সমস্ত রেকর্ড প্রদর্শন করা হচ্ছে। প্রশ্নটি নিম্নরূপ -

DistinctDemo থেকে
mysql> SELECT *;

উপরের ক্যোয়ারীটি চালানোর পরে, আমরা নিম্নলিখিত আউটপুট পাব −

+------+-------+| আইডি | নাম |+------+-------+| 1 | জন || 2 | জন || 3 | বব || 4 | জন || 5 | ডেভিড || 6 | বব |+------+------+6 সারি সেটে (0.00 সেকেন্ড)

উপরে, আমাদের ছয়টি রেকর্ড আছে যেখানে জন এবং বব নকল। ডুপ্লিকেট রেকর্ডগুলি সরাতে আমরা DISTINCT প্রয়োগ করতে পারি৷ সিনট্যাক্স নিম্নরূপ -

কলাম_নাম অনুসারে আপনার টেবিলের নাম থেকে আলাদা কলম_নাম নির্বাচন করুন;

এখন, আমি সদৃশ −

মুছে ফেলার জন্য উপরের প্রশ্নটি প্রয়োগ করছি
mysql> DistinctDemo থেকে আলাদা নাম নির্বাচন করুন;

নিম্নলিখিত আউটপুট

<প্রে>+------+| নাম |+------+| জন || বব || ডেভিড |+------+3 সারি সেটে (0.00 সেকেন্ড)

দ্বারা নির্বাচন করুন বিভিন্ন কলাম থেকে ডেটা পেতে এবং এক বা একাধিক কলামে গোষ্ঠীভুক্ত করতে ব্যবহার করা যেতে পারে। এটি সামগ্রিক ফাংশনের সাথেও প্রয়োগ করা যেতে পারে৷ উদাহরণের জন্য:SUM, AVG ইত্যাদি৷

প্রথমত, আমি CREATE কমান্ড -

এর সাহায্যে একটি টেবিল তৈরি করছি
mysql> টেবিল তৈরি করুন GroupDemo1-> (-> id int,-> name varchar(100),-> address varchar(100)-> );কোয়েরি ঠিক আছে, 0 সারি প্রভাবিত (0.68 সেকেন্ড)

টেবিল তৈরি করার পর, আমি টেবিলে রেকর্ডটি ঢোকাচ্ছি যা নিম্নরূপ −

mysql> GroupDemo1 মানগুলিতে ঢোকান ঠিক আছে, 1 সারি প্রভাবিত (0.13 সেকেন্ড)mysql> GroupDemo1 মানগুলিতে ঢোকান(3,'David','US'); কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.12 সেকেন্ড)mysql> GroupDemo1 মানগুলিতে ঢোকান(4,'David', 'ইউএস'); কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.15 সেকেন্ড)

এখন, আমরা SELECT কমান্ড -

এর সাহায্যে সমস্ত রেকর্ড প্রদর্শন করতে পারি
mysql> GroupDemo1 থেকে * নির্বাচন করুন;

নিচের আউটপুট −

<প্রে>+------+------+---------+| আইডি | নাম | ঠিকানা |+------+-------+---------+| 1 | জন | মার্কিন || 2 | বব | ইউকে || 3 | ডেভিড | মার্কিন || 4 | ডেভিড | US |+------+-------+---------+4টি সারি সেটে (0.00 সেকেন্ড)

ঘটনার সংখ্যা সহ একই ঠিকানা জানতে আমি GROUP BY আবেদন করব। এখানে সিনট্যাক্স −

select column_name1,......N aggregate function( ) from yourTableName group bycolumn_name;

আসুন উপরের সিনট্যাক্সটি GROUP BY −

-এ প্রয়োগ করি
mysql> ঠিকানা নির্বাচন করুন, ঠিকানা অনুসারে GroupDemo1 গ্রুপ থেকে গণনা(*);

নিচের আউটপুট −

<প্রে>+---------+---------+| ঠিকানা | গণনা(*) |+---------+---------+| মার্কিন | 3 || যুক্তরাজ্য | 1 |+---------+---------+2 সারি সেটে (0.00 সেকেন্ড)
  1. এলোমেলোভাবে একটি MySQL টেবিলে স্বতন্ত্র সারি নির্বাচন করুন?

  2. কিভাবে মাস অনুযায়ী MySQL সিলেক্ট করবেন?

  3. টেবিলের স্বতন্ত্র কলাম থেকে গড় নির্বাচন করতে MySQL ক্যোয়ারী?

  4. MySQL সর্বোচ্চ বেতন নির্বাচন করুন?