ডেটা সায়েন্স ইন্টারভিউয়ের জন্য আপনার জানা উচিত শীর্ষ পাঁচটি SQL উইন্ডো ফাংশন

উত্স নোড: 1582448

ডেটা সায়েন্স ইন্টারভিউয়ের জন্য আপনার জানা উচিত শীর্ষ পাঁচটি SQL উইন্ডো ফাংশন
 

এসকিউএল হল ডাটা জগতের সার্বজনীন ভাষা এবং একজন ডাটা পেশাদার হিসেবে কাজ করার জন্য এটি সবচেয়ে গুরুত্বপূর্ণ দক্ষতা।

এসকিউএল এত গুরুত্বপূর্ণ হওয়ার কারণ হল এটি হল প্রধান দক্ষতা যা ডেটা র্যাংলিং পর্বের সময় প্রয়োজন। এসকিউএল-এর মাধ্যমে প্রচুর ডেটা এক্সপ্লোরেশন, ডেটা ম্যানিপুলেশন, পাইপলাইন ডেভেলপমেন্ট এবং ড্যাশবোর্ড তৈরি করা হয়।

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

সঙ্গে যে বলেন, এর মধ্যে ডুব দেওয়া যাক!

1. LEAD() এবং LAG() সহ ডেল্টা

 
LEAD() এবং LAG() একটি নির্দিষ্ট মেট্রিকের পূর্ববর্তী সময়ের সাথে সময়ের একটি সময়ের তুলনা করার সময় বেশিরভাগই ব্যবহৃত হয়। কয়েকটি উদাহরণ দিতে…

  • আপনি প্রতি বছরের বিক্রয় এবং আগের বছরের বিক্রয়ের মধ্যে ডেল্টা পেতে পারেন
  • আপনি এক মাস থেকে মাসের ভিত্তিতে সাইন-আপ/রূপান্তর/ওয়েবসাইট ভিজিটের সংখ্যায় ডেল্টা পেতে পারেন
  • আপনি একটি মাসিক ভিত্তিতে ব্যবহারকারী মন্থন তুলনা করতে পারেন

উদাহরণ:

নিম্নলিখিত ক্যোয়ারী দেখায় কিভাবে আপনি খরচের মাসিক শতাংশ পরিবর্তনের জন্য প্রশ্ন করতে পারেন

with monthly_costs as ( SELECT date , monthlycosts , LEAD(monthlycosts) OVER (ORDER BY date) as previousCosts FROM costs )SELECT date , (monthlycosts - previousCosts) / previousCosts * 100 AS costPercentChange FROM monthly_costs

2. SUM() বা COUNT() সহ ক্রমবর্ধমান যোগফল

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

  • সময়ের সাথে চলমান মোট আয় এবং খরচ পান
  • ব্যবহারকারী প্রতি অ্যাপে ব্যয় করা মোট সময় পান
  • সময়ের সাথে চলমান মোট রূপান্তর পান

উদাহরণ:

নিম্নলিখিত উদাহরণ দেখায় কিভাবে আপনি মাসিক খরচের একটি ক্রমবর্ধমান যোগফল কলাম অন্তর্ভুক্ত করতে পারেন:

SELECT date , monthlycosts , SUM(monthlycosts) OVER (ORDER BY date) as cumCosts FROM cost_table

3. AVG() দিয়ে মুভিং এভারেজ

 
AVG() উইন্ডোজ ফাংশনে সত্যিই শক্তিশালী কারণ এটি আপনাকে গণনা করতে দেয় চলমান গড় সময়ের সাথে সাথে।

মুভিং এভারেজ হল স্বল্পমেয়াদে মান পূর্বাভাস দেওয়ার একটি সহজ, কিন্তু কার্যকরী উপায়। এগুলি একটি গ্রাফে উদ্বায়ী বক্ররেখাগুলিকে মসৃণ করতেও অত্যন্ত কার্যকর। সাধারণত, চলমান গড়গুলি জিনিসগুলি কোথায় চলছে তার সাধারণ দিক পরিমাপ করতে ব্যবহৃত হয়।

আরো নির্দিষ্টভাবে…

  • এগুলি সাপ্তাহিক বিক্রয়ের সাধারণ প্রবণতা পেতে ব্যবহার করা যেতে পারে (সময়ের সাথে সাথে গড় কি বাড়ছে?)। এটি একটি কোম্পানি হিসাবে বৃদ্ধি নির্দেশ করবে।
  • তারা একইভাবে সাপ্তাহিক রূপান্তর বা ওয়েবসাইট ভিজিটের সাধারণ প্রবণতা পেতে ব্যবহার করা যেতে পারে।

উদাহরণ:

নিম্নলিখিত ক্যোয়ারীটি রূপান্তরের জন্য 10-দিনের চলমান গড় পাওয়ার একটি উদাহরণ।

SELECT Date , dailyConversions , AVG(dailyConversions) OVER (ORDER BY Date ROWS 10 PRECEDING) AS 10_dayMovingAverage FROM conversions

4. ROW_NUMBER()

 
আপনি যখন প্রথম বা শেষ রেকর্ড পেতে চান তখন ROW_NUMBER() বিশেষভাবে উপযোগী৷ উদাহরণ স্বরূপ, আপনার কাছে যদি জিমের সদস্যরা কখন জিমে আসেন তার একটি টেবিল থাকে এবং আপনি প্রথম দিনের তারিখটি জানতে চান যেদিন তারা জিমে এসেছেন, আপনি গ্রাহক (নাম/আইডি) দ্বারা বিভক্ত করতে পারেন এবং ক্রয়ের তারিখ অনুসারে অর্ডার করতে পারেন৷ তারপর, প্রথম সারি পাওয়ার জন্য, আপনি কেবল একটির সমান rowNumber সহ সারিগুলির জন্য ফিল্টার করতে পারেন।

উদাহরণ:

এই উদাহরণটি দেখায় যে আপনি কীভাবে ROW_NUMBER() ব্যবহার করতে পারেন প্রতিটি সদস্য (ব্যবহারকারী) কখন পরিদর্শন করেছেন তার প্রথম তারিখ পেতে৷

with numbered_visits as ( SELECT memberId , visitDate , ROW_NUMBER() OVER (PARTITION BY customerId ORDER BY purchaseDate) as rowNumber FROM gym_visits )SELECT * FROM numbered_visits WHERE rowNumber = 1

রিক্যাপ করার জন্য, আপনার যদি কখনও প্রথম বা শেষ রেকর্ড পেতে হয়, ROW_NUMBER() এটি অর্জন করার একটি দুর্দান্ত উপায়।

5. DENSE_RANK() সহ রেকর্ড র‌্যাঙ্কিং

 
DENSE_RANK() ROW_NUMBER() এর সাথে সমান তা ছাড়া এটি সমান মানের জন্য একই র‌্যাঙ্ক প্রদান করে। শীর্ষ রেকর্ড পুনরুদ্ধার করার ক্ষেত্রে ঘন র‌্যাঙ্কিং বেশ কার্যকর, উদাহরণস্বরূপ:

  • আপনি যদি এই সপ্তাহে শীর্ষ 10টি সর্বাধিক দেখা Netflix শো টেনে আনতে চান
  • আপনি যদি ডলার খরচ করে সেরা 100 ব্যবহারকারী পেতে চান
  • আপনি যদি 1000 ন্যূনতম সক্রিয় ব্যবহারকারীর আচরণ দেখতে চান

উদাহরণ:

আপনি যদি মোট বিক্রয় দ্বারা আপনার শীর্ষ গ্রাহকদের র‌্যাঙ্ক করতে চান, DENSE_RANK() ব্যবহার করার জন্য একটি উপযুক্ত ফাংশন হবে।

SELECT customerId , totalSales , DENSE_RANK() OVER (ORDER BY totalSales DESC) as rank FROM customers

পড়ার জন্য ধন্যবাদ!

 
এবং সব শেষ! আমি আশা করি এটি আপনার সাক্ষাত্কারের প্রস্তুতিতে আপনাকে সাহায্য করবে — আমি নিশ্চিত যে আপনি যদি এই 5টি ধারণা ভিতরে-বাইরে জানেন, তবে সেখানে বেশিরভাগ SQL উইন্ডো ফাংশন সমস্যার ক্ষেত্রে আপনি দুর্দান্ত কাজ করবেন।

বরাবরের মতো, আমি আপনার শেখার প্রচেষ্টায় আপনাকে সেরা কামনা করি!

 
 
টেরেন্স শিন এসকিউএল-এ 3+ বছরের অভিজ্ঞতা এবং পাইথনে 2+ বছরের অভিজ্ঞতা সহ একজন ডেটা উত্সাহী এবং Towards Data Science এবং KDnuggets-এ একজন ব্লগার৷

মূল। অনুমতি নিয়ে পোস্ট করা।

সূত্র: https://www.kdnuggets.com/2022/01/top-five-sql-window-functions-know-data-science-interviews.html

সময় স্ট্যাম্প:

থেকে আরো কেডনুগেটস

শীর্ষ খবর, সেপ্টেম্বর 20-26: নয়টি টুল আমার ইচ্ছা আমি মেশিন লার্নিং-এ পিএইচডি করার আগে আয়ত্ত করি; কিভাবে আপনার মেশিন লার্নিং মডেলে দুর্বলতা খুঁজে বের করবেন

উত্স নোড: 1876467
সময় স্ট্যাম্প: সেপ্টেম্বর 27, 2021