SQL সার্ভার LEAD() ফাংশন

Sql Sarbhara Lead Phansana



এই প্রবন্ধে, আমরা আপনাকে SQL সার্ভারে লিড() ফাংশনের সাথে কাজ করার মৌলিক বিষয়গুলো নিয়ে আলোচনা করব। আমরা ফাংশনটি কী করে, এর সিনট্যাক্স এবং কীভাবে এটি ব্যবহার করতে হয় তার ব্যবহারিক উদাহরণগুলি কভার করব।

SQL সার্ভার লিড ফাংশন

SQL সার্ভারে লিড ফাংশন হল একটি বিশ্লেষণাত্মক ফাংশন যা আপনাকে স্ব-যোগদান ছাড়াই একই ফলাফল সেটে পরবর্তী সারি থেকে ডেটা অ্যাক্সেস করতে দেয়।

ফাংশনটি আপনাকে বর্তমান সারির পূর্বে প্রদত্ত অফসেটে একটি সারি অ্যাক্সেস করতে সক্ষম করে। উদাহরণস্বরূপ, লিড ফাংশন ব্যবহার করে, আপনি বর্তমান সারির পরপরই সারিটি, বর্তমান সারি থেকে 10 তম সারি ইত্যাদি খুঁজে পেতে পারেন।







এই ফাংশনটি ডাটাবেস ডেভেলপারদের যোগদান, ভিউ ব্যবহার ইত্যাদির মতো জটিল কাজ ছাড়াই সারি তুলনা করতে চালিত করে।



ফাংশন সিনট্যাক্স

নিম্নলিখিত SQL সার্ভারে লিড() ফাংশনের সিনট্যাক্স চিত্রিত করে:



LEAD ( স্কেলার_এক্সপ্রেশন [ ,অফসেট ] , [ ডিফল্ট ] )
ওভার ( [ partition_by_clause ] order_by_clause )

পরবর্তী তালিকা হল সমর্থিত আর্গুমেন্ট এবং তাদের কার্যকারিতা:





  1. scalar_expression - এই যুক্তিটি সংজ্ঞায়িত অফসেটের উপর ভিত্তি করে রিটার্ন মান নির্দেশ করে। এটি যেকোন প্রকারের একটি অভিব্যক্তি হতে পারে যা একটি একক মান প্রদান করে। যাইহোক, স্কেলার_এক্সপ্রেশনের মান অন্য বিশ্লেষণাত্মক/উইন্ডো ফাংশন হতে পারে না।
  2. অফসেট - এটি বর্তমান সারি অবস্থান থেকে কতগুলি সারি সেট করে মানটি আনা হয়েছে। ডিফল্টরূপে, ফাংশনটি সারিটিকে বর্তমান সারিতে অবিলম্বে বিশেষণ আনবে। একইভাবে, অফসেট প্যারামিটারের মান একটি বিশ্লেষণাত্মক ফাংশন বা একটি ঋণাত্মক পূর্ণসংখ্যা হতে পারে না।
  3. ডিফল্ট - এই প্যারামিটারটি ডিফল্ট মান সেট করে যদি প্রদত্ত অফসেট মান লক্ষ্য পার্টিশনের সুযোগের বাইরে হয়। ডিফল্টরূপে, ফাংশনটি NULL প্রদান করবে।
  4. পার্টিশন বাই - পার্টিশন_বাই ক্লজ সেই নিয়মগুলিকে সংজ্ঞায়িত করে যা ফলাফল সেটকে বিভিন্ন বিভাগে ভাগ করে। ফাংশন তারপর প্রতিটি ফলাফল পার্টিশন প্রয়োগ করা হয়.
  5. ORDER BY - এটি লজিক্যাল ক্রম নির্ধারণ করে যেখানে প্রতিটি পার্টিশনের সারি প্রয়োগ করা হয়।

ফাংশনটি scalar_expression-এ সংজ্ঞায়িত ডেটা টাইপ প্রদান করে। প্রত্যাবর্তিত মানটি NULL হলে, ফাংশনটি NULL প্রদান করে।

নমুনা তথ্য

চলুন কিছু নমুনা ডাটাবেস ব্যবহার করে দেখা যাক কিভাবে লিড ফাংশন ব্যবহার করতে হয়। প্রথমত, নীচে দেখানো হিসাবে প্রশ্নগুলি ব্যবহার করুন:



ইনভেন্টরি থাকলে ডাটাবেস ড্রপ করুন;

ডেটাবেস ইনভেন্টরি তৈরি করুন;

জায় ব্যবহার করুন;

ড্রপ টেবিল যদি পণ্য বিদ্যমান থাকে;

টেবিল পণ্য তৈরি করুন (
আইডি int পরিচয় প্রাথমিক কী শূন্য নয়,
পণ্য_নাম varchar(100),
প্রস্তুতকারক varchar(50),
পরিমাণ int শূন্য নয়,
মূল্য int ডিফল্ট 0,
ইন_স্টক বিট
);
পণ্যগুলিতে সন্নিবেশ করুন (পণ্য_নাম, প্রস্তুতকারক, পরিমাণ, মূল্য, ইন_স্টক)
মান ('Apple iPad Air', 'Apple', 100, 569.99, 1),
('Samsung Galaxy Z Flip 4', 'Samsung', 302, 1569.00, 1),
('Sony Playstation 5', 'Sony',  500, 499.99, 1),
('Samsung Galaxy Watch-5 Pro', 'Samsung', 600, 209/.99, 1),
('Apple Watch Series 6', 'Apple', 459, 379.90, 1),
('Apple AirPods Pro', 'Apple', 200, 199.99, 1),
('55' ক্লাস S95B OLED 4K স্মার্ট টিভি', 'স্যামসাং', 900, 1999.90, 1),
('Odyssey Ark Quantum Mini-LED Curved Gaming Screen', 'Samsung', 50, 2999.90, 1);

ফলস্বরূপ টেবিলটি দেখানো হয়েছে:

উদাহরণ 1 - একটি ফলাফল সেটের উপর SQL সার্ভার লিড() ফাংশন ব্যবহার করা

নিচের উদাহরণটি পরবর্তী পণ্যের মূল্য ফেরত দিতে লীড() ফাংশন ব্যবহার করে।

নির্বাচন করুন
পণ্যের নাম,
প্রস্তুতকারক,
পরিমাণ,
মূল্য,
সীসা (মূল্য,
1) ওভার (
পরিমাণ অনুসারে অর্ডার করুন)
থেকে
পণ্য;

ফলাফল টেবিল:

যেহেতু শেষ কলাম থেকে কোন সারি নেই, তাই ফাংশনটি NULL প্রদান করে।

উদাহরণ 2 - একটি পার্টিশন সেটের উপর SQL সার্ভার লিড() ফাংশন ব্যবহার করা

আমরা একটি প্রদত্ত পার্টিশনে পরবর্তী পণ্যটিও আনতে পারি। উদাহরণস্বরূপ, আমরা প্রস্তুতকারকের উপর ভিত্তি করে উপরের ডেটা পার্টিশন করতে পারি এবং প্রতিটি পার্টিশনে লিড() ফাংশন প্রয়োগ করতে পারি

একটি উদাহরণ দৃষ্টান্ত দেখানো হয়েছে:

নির্বাচন করুন
পণ্যের নাম,
প্রস্তুতকারক,
পরিমাণ,
মূল্য,
সীসা (মূল্য,
1) ওভার (
প্রস্তুতকারকের দ্বারা বিভাজন
পরিমাণ অনুসারে অর্ডার করুন)
থেকে
পণ্য;

উপরের ক্যোয়ারীটি প্রস্তুতকারকের উপর ভিত্তি করে সারিগুলিকে ভাগ করতে হবে এবং প্রতিটি পার্টিশনের মানগুলির জন্য পরবর্তী মূল্য আনতে হবে।

এই ক্ষেত্রে, তিনটি পার্টিশন আছে।

উপসংহার

এই পোস্টে, আপনি SQL সার্ভারে লিড() ফাংশনের বিল্ডিং ব্লকগুলি বুঝতে পেরেছেন। আপনি ফলাফল এবং পার্টিশন সেটের উপর কীভাবে লিড() ফাংশন ব্যবহার করতে হয় তাও শিখেছেন।