5.1 থাকার বিবৃতি

এসকিউএল-এ আরেকটি দরকারী অপারেটর আছে যা ব্যবহার করা হয় GROUP BY, একে বলা হয় HAVING

এর অর্থে, এটি অপারেটরের সাথে সম্পূর্ণ সাদৃশ্যপূর্ণ WHERE। এটি আপনাকে শুধুমাত্র WHEREগ্রুপ করার আগে একটি সারি ফিল্টার সেট করতে দেয় এবং এর সাহায্যে HAVINGআপনি একটি ফিল্টার সেট করতে পারেন যা গ্রুপ করার পরে রেকর্ডে প্রয়োগ করা হয়।

গ্রুপিং এবং ফিল্টারিং গ্রুপিং ফলাফলগুলি ব্যবহার করার সময় কোয়েরির সাধারণ দৃশ্যটি নিম্নরূপ:

SELECT columns
FROM table
WHERE condition
GROUP BY columns
HAVING condition

HAVINGশুধুমাত্র অনুরোধে থাকলেই ব্যবহার করা যেতে পারে GROUP BY

আসুন একটি ক্যোয়ারী লিখি যেখানে আমরা বছরের ভিত্তিতে নিয়োগকৃত কর্মচারীর সংখ্যা প্রদর্শন করি।

SELECT
YEAR(join_date) AS hire_year,
COUNT(*) AS total
FROM employee
GROUP BY hire_year

এবং এই প্রশ্নের ফলাফল:

ভাড়া_বছর মোট
2012 1
2013 1
2014 1
2015 2
2018 1

এবং এখন আমরা এটি থেকে বাদ দিই যে বছরগুলিতে এক বা কম কর্মচারী নিয়োগ করা হয়েছিল। উদাহরণ:

SELECT
YEAR(join_date) AS hire_year,
COUNT(*) AS total
FROM employee
GROUP BY hire_year
HAVING total > 1

এবং এই প্রশ্নের ফলাফল:

ভাড়া_বছর মোট
2015 2

5.3 বিবৃতি কার্যকর করার আদেশ

সঠিক এবং দক্ষ SQL ক্যোয়ারী লিখতে, আপনাকে বুঝতে হবে কিভাবে সেগুলি SQL সার্ভার দ্বারা নির্বাহ করা হয়।

ক্রিয়া সম্পাদনের পদ্ধতিটি কঠোরভাবে নিয়ন্ত্রিত এবং আপনার ইচ্ছার উপর নির্ভর করে না। আপনি অপারেটর পুনর্বিন্যাস এবং একটি ভিন্ন আদেশ পেতে পারেন না.

এসকিউএল ক্যোয়ারী এই ক্রমে বেশ কয়েকটি ধাপে কার্যকর করা হয়।

  1. পর্যায় 1 - সারি আনা
    • প্রথমে, নির্দিষ্ট টেবিল থেকে সমস্ত সারি নির্বাচন করা হয়।
    • তারপর গণনা করা ক্ষেত্রগুলি তাদের সাথে যোগ করা হয়।
    • এবং তারপরে সমস্ত সারিগুলির মধ্যে, কেবলমাত্র সেইগুলিই থাকে যা শর্ত পূরণ করেWHERE
  2. পর্যায় 2 - গ্রুপিং
    • গ্রুপিং তারপর ফলাফল প্রয়োগ করা হয়.
    • গ্রুপিংয়ের সময়, ক্ষেত্রগুলি যেমন COUNT(*).
    • অবশেষে, গ্রুপিং ফলাফলে একটি ফিল্টার প্রয়োগ করা হয় HAVING
  3. পর্যায় 3 - বাছাই
    • পূর্ববর্তী ধাপে প্রাপ্ত সারিগুলি ব্যবহার করে সাজানো হয়েছে ORDER BY

অবশেষে, ফলাফল LIMITএবং সঙ্গে ছাঁটা করা যেতে পারে OFFSET