উত্তর:
অর্ডার দ্বারা আদেশটি আইটেমগুলি ফেরত পাঠানো হয়।
গ্রুপ বাই গ্রাহকরা নির্দিষ্ট কলামগুলির দ্বারা রেকর্ডগুলি একত্রিত করবে যা আপনাকে নন-গোষ্ঠীযুক্ত কলামগুলিতে (যেমন SUM, COUNT, AVG ইত্যাদি) একত্রিতকরণ কার্য সম্পাদন করতে দেয়।
অর্ডার দ্বারা আদেশটি আইটেমগুলি ফেরত পাঠানো হয়।
গ্রুপ বাই গ্রাহকরা নির্দিষ্ট কলামগুলির দ্বারা রেকর্ডগুলি একত্রিত করবে যা আপনাকে নন-গোষ্ঠীযুক্ত কলামগুলিতে (যেমন SUM, COUNT, AVG ইত্যাদি) একত্রিতকরণ কার্য সম্পাদন করতে দেয়।
TABLE:
ID NAME
1 Peter
2 John
3 Greg
4 Peter
SELECT *
FROM TABLE
ORDER BY NAME
=
3 Greg
2 John
1 Peter
4 Peter
SELECT Count(ID), NAME
FROM TABLE
GROUP BY NAME
=
1 Greg
1 John
2 Peter
SELECT NAME
FROM TABLE
GROUP BY NAME
HAVING Count(ID) > 1
=
Peter
ageকলাম থাকে, পিটারগুলির সাথে বিভিন্ন বয়স হয় এবং ক্যোয়ারী নির্বাচন করুন, নাম অনুসারে ট্যাবলেটি থেকে গ্রাহক হন?
অর্ডার দ্বারা: আরোহী বা উতরান ক্রমে ডেটা বাছাই করুন।
গ্রাহক সারণী বিবেচনা করুন :
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
নীচে একটি উদাহরণ দেওয়া হল, যা ফলাফলকে NAME দ্বারা আরোহণের ক্রম অনুসারে বাছাই করবে:
SQL> SELECT * FROM CUSTOMERS
ORDER BY NAME;
এটি নিম্নলিখিত ফলাফল উত্পন্ন করবে:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
+----+----------+-----+-----------+----------+
গ্রুপ দ্বারা গ্রুপ : অভিন্ন ডেটা সাজান।
এখন, গ্রাহক সারণিতে সদৃশ নামগুলির সাথে নিম্নলিখিত রেকর্ড রয়েছে:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Ramesh | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | kaushik | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
আপনি যদি অভিন্ন নামকে একক নামে গোষ্ঠী করতে চান, তবে গ্রুপ দ্বারা কোয়েরি নীচে হবে:
SQL> SELECT * FROM CUSTOMERS
GROUP BY NAME;
এটি নিম্নলিখিত ফলাফল তৈরি করবে: (অভিন্ন নামের জন্য এটি সর্বশেষটি বেছে নেবে এবং শেষ পর্যন্ত কলামটিকে আরোহণের ক্রমে সাজিয়ে তুলবে)
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 4 | kaushik | 25 | Mumbai | 6500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
| 2 | Ramesh | 25 | Delhi | 1500.00 |
+----+----------+-----+-----------+----------+
যেমন আপনি অনুমান করেছেন যে এটি এসকিউএল ফাংশন, যোগফল, গড় ইত্যাদি ছাড়া কোনও লাভজনক নয় ..
সুতরাং গ্রুপের সঠিক ব্যবহার বুঝতে এই সংজ্ঞাটি দেখুন:
একটি গ্রুপ বাই ক্লজটি কোয়েরিতে ফিরে আসা সারিগুলিকে একক / স্বতন্ত্র গ্রুপে অভিন্ন সারিগুলি সংক্ষিপ্ত করে কাজ করে এবং COUNT (), SUM এর মতো SELECT তালিকায় উপযুক্ত সমষ্টিগত ফাংশনটি ব্যবহার করে প্রতিটি গ্রুপের সংক্ষিপ্তসার সহ একটি একক সারি প্রদান করে S (), এমআইএন (), ম্যাক্স (), এভিজি () ইত্যাদি
এখন, আপনি যদি প্রতিটি গ্রাহকের (নাম) মোট বেতনের পরিমাণ জানতে চান, তবে গ্রুপ বাই কোয়েরি নিম্নলিখিত হিসাবে হবে:
SQL> SELECT NAME, SUM(SALARY) FROM CUSTOMERS
GROUP BY NAME;
এটি নিম্নলিখিত ফলাফল তৈরি করতে পারে: (অভিন্ন নামের বেতনের সমষ্টি এবং অভিন্ন নামগুলি সরিয়ে দেওয়ার পরে নাম কলামটি বাছাই করুন)
+---------+-------------+
| NAME | SUM(SALARY) |
+---------+-------------+
| Hardik | 8500.00 |
| kaushik | 8500.00 |
| Komal | 4500.00 |
| Muffy | 10000.00 |
| Ramesh | 3500.00 |
+---------+-------------+
পার্থক্যটি হ'ল নামটি বোঝায় ঠিক কীভাবে: একটি গোষ্ঠী গোষ্ঠী ক্রিয়াকলাপ সম্পাদন করে, এবং ক্রম অনুসারে একটি আদেশ দেয়।
আপনি যদি তা করেন SELECT * FROM Customers ORDER BY Nameতবে ফলাফলের তালিকাটি গ্রাহকদের নাম অনুসারে বাছাই করুন।
আপনি যদি SELECT IsActive, COUNT(*) FROM Customers GROUP BY IsActiveসক্রিয় এবং নিষ্ক্রিয় গ্রাহকদের একটি গণনা পান। আপনার নির্দিষ্ট ক্ষেত্রের উপর ভিত্তি করে দলটি ফলাফলকে একত্রিত করে।
তাদের সম্পূর্ণ আলাদা অর্থ রয়েছে এবং এগুলি আসলে সম্পর্কিত নয়।
অর্ডার বাই আপনাকে ফলাফলটি বিভিন্ন মানদণ্ড অনুসারে বাছাই করতে দেয় যেমন এজে থেকে নাম অনুসারে প্রথমে সাজান, তারপরে দামটি সর্বোচ্চ থেকে সর্বনিম্নে সাজান।
(অর্ডার নাম, দাম DESC)
GROUP BY আপনাকে আপনার ফলাফল সেটটি গ্রহণ করতে, এটিকে যৌক্তিক গোষ্ঠীতে গ্রুপবদ্ধ করতে এবং তারপরে groups গোষ্ঠীগুলিতে সামগ্রিক অনুসন্ধান চালানোর অনুমতি দেয়। আপনি উদাহরণস্বরূপ সমস্ত কর্মচারী বাছাই করতে পারেন, তাদের কর্মক্ষেত্রের অবস্থান অনুসারে তাদের গ্রুপ করুন এবং প্রতিটি কর্মস্থলের অবস্থানের সমস্ত কর্মচারীর গড় বেতন গণনা করতে পারেন।
সরল, ORDER BYডেটা এবং GROUP BYগোষ্ঠীগুলির অর্ডার দেয় বা ডেটা একত্রিত করে।
ORDER BY উত্থিত ক্রমে ডিফল্ট হিসাবে উল্লিখিত ক্ষেত্র অনুসারে ফলাফল নির্ধারণ করে।
ধরুন আপনি কোনও ক্যোয়ারী হিসাবে গুলি চালাচ্ছেন ORDER BY (student_roll_number), এটি আপনাকে শিক্ষার্থীর রোল নম্বরগুলির ক্রমবর্ধমান ক্রমের ফলাফল দেখিয়ে দেবে। এখানে, student_roll_numberএন্ট্রি একাধিকবার হতে পারে।
ইন GROUP BYকেস, আমরা সমষ্টিগত ফাংশন সঙ্গে এটি ব্যবহার, এবং এটি গ্রুপ সমষ্টিগত ফাংশন অনুযায়ী ডেটা, এবং আমরা ফলাফলের পেতে। এখানে, যদি আমাদের ক্যোয়ারীটি SUM (marks)বরাবর থাকে GROUP BY (student_first_name)তবে প্রতিটি গ্রুপের (যেখানে একটি গোষ্ঠীর সব সদস্যের একই নাম থাকবে) এর শিক্ষার্থীদের চিহ্নের যোগফল দেখাবে।
GROUP BY দ্বারা একটি নির্বাচনের ক্ষেত্রে সারিগুলিকে গোষ্ঠী করতে ব্যবহৃত হয়, সাধারণত যখন সারিগুলিকে একত্রিত করা হয় (উদাহরণস্বরূপ কয়েকটি ক্ষেত্রের জন্য একই মানের সাথে সারিগুলির সেটগুলির জন্য মোট, গড় ইত্যাদি গণনা করা হয়)।
অর্ডার বাই বাছাই করে একটি নির্বাচিত বিবৃতি থেকে প্রাপ্ত সারিগুলিকে অর্ডার করতে ব্যবহৃত হয়।
কিছু ভাল উদাহরণ আছে। ওয়েবচ্যাট পত্রকটি থেকে আমার নিজের যুক্ত করতে চাই যা ভাল স্পষ্ট উদাহরণ দেয়, পাশাপাশি আপনাকে নিজের এসকিউএল চালায়।
এটি লক্ষ GROUP BYকরা উচিত যে সর্বদা হিসাবে প্রয়োজনীয় নয় (কমপক্ষে পোস্টগ্র্যাসএসকিউএল এবং সম্ভবত অন্যান্য এসকিউএল ভেরিয়েন্টে) আপনি ORDER BYএকটি তালিকা ব্যবহার করতে পারেন এবং আপনি এখনও কলাম ব্যবহার করতে পারেন ASCবা DESC প্রতি কলাম ...
SELECT name_first, name_last, dob
FROM those_guys
ORDER BY name_last ASC, name_first ASC, dob DESC;