এমনকি ডাটাবেস প্রশাসনেও আসা সাধারণ পরিসংখ্যানগত গণনাগুলির মধ্যে একটি হল শতাংশ।
পার্সেন্টাইল হল একটি পরিসংখ্যানগত পরিমাপ যা আমাদের একটি ডেটাসেটকে সেগমেন্টের সমান অংশে ভাগ করতে দেয়। পার্সেন্টাইলের ভূমিকা হল ডেটা বন্টনের একটি অন্তর্দৃষ্টি প্রদান করা যা আমরা কীভাবে বুঝতে পারি যে মানগুলি কীভাবে ছড়িয়ে পড়ে।
এই টিউটোরিয়ালে, আমরা শিখব কিভাবে আমরা এসকিউএল-এ পার্সেন্টাইল গণনা করে ডেটাকে বিভিন্ন সেগমেন্টে ভাগ করতে পারি।
নমুনা টেবিল
আসুন একটি মৌলিক টেবিল সেট আপ করে শুরু করি যাতে প্রদর্শনের উদ্দেশ্যে একটি নমুনা ডেটা রয়েছে। এটি আমাদেরকে চিত্রিত করতে সাহায্য করে কিভাবে শতকরা গণনার বিভিন্ন পদ্ধতি আচরণ করে এবং ফলস্বরূপ আউটপুট।
আসুন 'পণ্য' নামে একটি টেবিল তৈরি করি যাতে মুদির তথ্য রয়েছে। 'টেবিল তৈরি করুন' ধারাটি নিম্নরূপ:
টেবিল পণ্য তৈরি করুন (
পণ্য_আইডি আইএনটি প্রাথমিক কী স্বয়ংক্রিয়_INCREMENT,
পণ্য_নাম VARCHAR( 255 ),
শ্রেণী VARCHAR( 255 ),
মূল্য দশমিক( 10 , 2 ),
পরিমাণ INT,
মেয়াদ শেষ হওয়ার_তারিখ DATE,
বারকোড BIGINT
);
একবার আমরা টেবিল তৈরি করলে, আমরা এগিয়ে যেতে পারি এবং টেবিলে নমুনা ডেটা যোগ করতে পারি। আমরা নিম্নলিখিত 'সন্নিবেশ' বিবৃতি ব্যবহার করতে পারি:
সন্নিবেশমধ্যে
পণ্য (পণ্য_নাম,
বিভাগ,
মূল্য,
পরিমাণ,
মেয়াদ শেষ হওয়ার_তারিখ,
বারকোড)
মান ( 'শেফ হ্যাট 25 সেমি' ,
'বেকারি' ,
24.67 ,
57 ,
'2023-09-09' ,
2854509564204 );
সন্নিবেশ
মধ্যে
পণ্য (পণ্য_নাম,
বিভাগ,
মূল্য,
পরিমাণ,
মেয়াদ শেষ হওয়ার_তারিখ,
বারকোড)
মান ( 'কোয়েলের ডিম - টিনজাত' ,
'প্যানট্রি' ,
17.99 ,
67 ,
'2023-09-29' ,
1708039594250 );
সন্নিবেশ
মধ্যে
পণ্য (পণ্য_নাম,
বিভাগ,
মূল্য,
পরিমাণ,
মেয়াদ শেষ হওয়ার_তারিখ,
বারকোড)
মান ( 'কফি - ডিম নগ ক্যাপুচিনো' ,
'বেকারি' ,
92.53 ,
10 ,
'2023-09-22' ,
8704051853058 );
সন্নিবেশ
মধ্যে
পণ্য (পণ্য_নাম,
বিভাগ,
মূল্য,
পরিমাণ,
মেয়াদ শেষ হওয়ার_তারিখ,
বারকোড)
মান ( 'নাশপাতি - কাঁটাযুক্ত' ,
'বেকারি' ,
65.29 ,
48 ,
'2023-08-23' ,
5174927442238 );
সন্নিবেশ
মধ্যে
পণ্য (পণ্য_নাম,
বিভাগ,
মূল্য,
পরিমাণ,
মেয়াদ শেষ হওয়ার_তারিখ,
বারকোড)
মান ( 'পাস্তা - অ্যাঞ্জেল হেয়ার' ,
'প্যানট্রি' ,
৪৮.৩৮ ,
59 ,
'2023-08-05' ,
8008123704782 );
সন্নিবেশ
মধ্যে
পণ্য (পণ্য_নাম,
বিভাগ,
মূল্য,
পরিমাণ,
মেয়াদ শেষ হওয়ার_তারিখ,
বারকোড)
মান ( 'ওয়াইন - প্রসেকো ভালডোবিয়াডেনে' ,
'উৎপাদন করা' ,
44.18 ,
3 ,
'2023-03-13' ,
6470981735653 );
শেষে, আপনার নিম্নরূপ একটি টেবিল থাকা উচিত:
এসকিউএল পারসেন্টাইল
আপনি অনুমান করতে পারেন, শতাংশ গণনা করার উপায় ডাটাবেস ইঞ্জিনের উপর নির্ভর করে ভিন্ন হতে পারে। যাইহোক, সবচেয়ে সাধারণ পদ্ধতি হল PERCENTILE_DISC() এবং PERCENTILE_CONT() ফাংশন ব্যবহার করা।
এই ফাংশনগুলি স্ট্যান্ডার্ড এসকিউএল স্পেসিফিকেশন (2003) এর অংশ। সুতরাং, এটি PostgreSQL এবং Oracle দ্বারা সমর্থিত হতে বাধ্য।
PERCENTILE_CONT()
PERCENTILE_CONT() ফাংশন দিয়ে শুরু করা যাক। এই ফাংশনটি আমাদের ডেটাসেটের ভগ্নাংশ হিসাবে শতাংশের মান গণনা করতে দেয়।
ফাংশনটি একটি ইন্টারপোলেটেড মান প্রদান করে যা আপনার ডেটাসেটের নির্দিষ্ট ডেটা পয়েন্টে সুনির্দিষ্ট নাও হতে পারে।
ফাংশন সিনট্যাক্স নিম্নরূপ:
PERCENTILE_CONT(শতাংশ) WITHIN গ্রুপ ( অর্ডার করুন কলাম_নাম দ্বারা) OVER ();ফাংশন নিম্নলিখিত পরামিতি গ্রহণ করে:
- শতকরা - এটি পছন্দসই শতকরা মান নির্দিষ্ট করে (0.0 থেকে 1.0)।
- column_name - এটি সেই কলামটিকে নির্দেশ করে যার জন্য আমরা শতাংশ গণনা করতে চাই।
- ওভার () - এটি সম্পূর্ণ ডেটাসেট নির্দিষ্ট করতে উইন্ডো ফাংশন সেট করে।
এই ফাংশনটি কীভাবে ব্যবহার করবেন তার একটি উদাহরণ নিম্নরূপ:
নির্বাচন করুনPERCENTILE_CONT( 0.5 ) মধ্যে গ্রুপ ( অর্ডার করুন মূল্য অনুসারে) ওভার () মধ্যম হিসাবে
থেকে
পণ্য;
দ্রষ্টব্য: প্রদত্ত ক্যোয়ারী শুধুমাত্র PostgreSQL এ কাজ করে যেহেতু MySQL WITHIN GROUP এর ব্যবহার সমর্থন করে না।
এটি 50 গণনা করে ম প্রদত্ত ডেটার শতাংশ।
PERCENTILE_DISC()
আমরা PERCENTILE_DISC() ফাংশন ব্যবহার করতে পারি সরাসরি ডেটাসেট থেকে বিচ্ছিন্ন মান হিসাবে শতাংশের মান গণনা করতে।
ফাংশনটি এমন একটি মান প্রদান করে যা একটি প্রকৃত ডেটা পয়েন্টের সাথে মিলে যায়।
ফাংশন সিনট্যাক্স নিম্নরূপ (PostgreSQL):
PERCENTILE_DISC(শতাংশ) WITHIN গ্রুপ ( অর্ডার করুন কলাম_নাম দ্বারা) OVER ();একটি উদাহরণ আউটপুট নিম্নরূপ:
নির্বাচন করুনPERCENTILE_DISC( 0.25 ) মধ্যে গ্রুপ ( অর্ডার করুন মূল্য অনুসারে) OVER () AS শতাংশ_25
থেকে
পণ্য;
এই 25 গণনা করা উচিত ম তথ্য শতাংশ.
উপসংহার
এই টিউটোরিয়ালটি SQL ডাটাবেসে শতকরা গণনা করতে বিভিন্ন ফাংশন কীভাবে ব্যবহার করতে হয় তা কভার করেছে।