Q ভাষা (যা KDB+ এর জন্য ব্যবহৃত) একটি শক্তিশালী ডেটাবেস প্রোগ্রামিং ভাষা যা ডেটার দ্রুত বিশ্লেষণ এবং প্রক্রিয়াকরণের জন্য উপযুক্ত। Q ভাষায় complex queries এবং subqueries পরিচালনা করা সহজ এবং কার্যকরী। এখানে complex queries এর মাধ্যমে একাধিক অপারেশন একসাথে করা হয় এবং subqueries এর মাধ্যমে একটি কুইরি অন্য কুইরির ভিতরে ব্যবহৃত হয়।
নিচে Q ভাষায় Complex Queries এবং Subqueries এর ব্যবহারের বিস্তারিত আলোচনা করা হলো।
১. Complex Queries (জটিল কুইরি)
Complex Queries এমন কুইরি যা একাধিক অপারেশন বা ফিল্টারিং, গ্রুপিং, অ্যাগ্রিগেশন ইত্যাদি একসাথে সম্পাদন করে ডেটার উপর গভীর বিশ্লেষণ এবং পর্যালোচনা করা হয়।
Complex Query উদাহরণ:
ধরা যাক একটি টেবিল আছে যেখানে বিভিন্ন তারিখ এবং প্রোডাক্টের দাম স্টোর করা আছে। এখন, আমরা জানি না কোন তারিখে কোন প্রোডাক্টের দাম সর্বোচ্চ ছিল এবং একই সময়ে গড় দাম কত ছিল, তাহলে আমরা একটি complex query ব্যবহার করতে পারি।
t: 2024.11.16 2024.11.16 2024.11.17 2024.11.17 2024.11.18
product: `apple`banana`apple`banana`apple
price: 100 150 110 160 120
table: t product price
select product, max price, avg price by t from tableএখানে, কুইরিটি group by t দ্বারা তারিখ অনুসারে গ্রুপিং করছে এবং প্রতিটি তারিখের জন্য max price এবং avg price বের করছে। এতে করে একই তারিখে বিভিন্ন প্রোডাক্টের দাম গড় এবং সর্বোচ্চ মূল্য দেখা যাচ্ছে।
Complex Query with Conditions:
কিছু শর্তের ভিত্তিতে কুইরি করা যেতে পারে, যেমন আমরা শুধুমাত্র apple এর দাম দেখব যেখানে দাম ১০০ এর বেশি।
select t, price from table where product = `apple, price > 100এখানে, product = apple এবং price > 100 শর্ত দ্বারা apple প্রোডাক্টের শুধুমাত্র ১০০ এর বেশি দামগুলি ফিল্টার করা হয়েছে।
২. Subqueries (সাবকুইরি)
Subqueries হল এমন কুইরি যা অন্য কুইরির মধ্যে ব্যবহৃত হয়। Subqueries সাধারণত একটি কুইরি দ্বারা উৎপন্ন ডেটা অন্য একটি কুইরিতে ব্যবহার করা হয়। Q ভাষায় সাবকুইরি ব্যবহার করা খুবই সহজ এবং শক্তিশালী।
Subquery উদাহরণ:
ধরা যাক, আমাদের একটি টেবিল আছে যেখানে বিভিন্ন তারিখে প্রোডাক্টের দাম স্টোর করা আছে এবং আমরা জানতে চাই কোন তারিখে গড় দাম ১০০ এর বেশি ছিল। এখানে, একটি সাবকুইরি ব্যবহার করা হবে:
select t from table where avg price > 100 by tএখানে, avg price > 100 কন্ডিশনটি সাবকুইরি হিসেবে কাজ করছে, যেখানে প্রথমে প্রতিটি তারিখের গড় দাম বের করা হবে এবং তারপর সেই তারিখের জন্য ফলাফল দেখানো হবে যেগুলোর গড় দাম ১০০ এর বেশি।
Subquery with Aggregation:
একটি সাবকুইরি ব্যবহার করে আপনি একাধিক অ্যাগ্রিগেশন অপারেশনও করতে পারেন। যেমন, প্রথমে একটি সাবকুইরি ব্যবহার করে সর্বোচ্চ দাম বের করবেন, তারপর তার ভিত্তিতে ডেটা ফিল্টার করবেন।
select t, product, price from table where price = (select max price from table where product = `apple)এখানে, প্রথম সাবকুইরি select max price from table where product = apple দ্বারা apple প্রোডাক্টের সর্বোচ্চ দাম বের করা হচ্ছে এবং পরে সেই দাম দ্বারা মূল কুইরিতে ডেটা ফিল্টার করা হচ্ছে।
৩. Nested Queries (নেস্টেড কুইরি)
নেস্টেড কুইরিতে একটি কুইরি আরেকটি কুইরির মধ্যে থাকে, যা প্রায়শই সাবকুইরি হিসেবে ব্যবহৃত হয়।
Nested Query উদাহরণ:
select t, product, price from table where price in (select price from table where product = `apple)এখানে, select price from table where product = apple একটি নেস্টেড কুইরি যা প্রথমে apple প্রোডাক্টের দাম বের করে এবং তারপর মূল কুইরি সেই দাম অনুযায়ী সমস্ত ডেটা ফিল্টার করে।
৪. Joining Tables (টেবিল জয়নিং)
Q ভাষায় joining অপারেশনও জটিল কুইরির অংশ হিসেবে ব্যবহৃত হয়। যখন একাধিক টেবিলের মধ্যে সম্পর্ক থাকে, তখন join ব্যবহার করা হয়।
Join Example:
table1: (`t`product! (2024.11.16 2024.11.16 2024.11.17 2024.11.17); `apple`banana`apple`banana)
table2: (`product`price! (`apple`banana`apple`banana); 100 150 110 160)
select t, product, price from table1 lj `product xkey table2এখানে, lj (left join) অপারেটরটি দুইটি টেবিলকে product কলামের ভিত্তিতে যোগ করছে, যাতে প্রতিটি product এর সাথে সংশ্লিষ্ট দাম পাওয়া যায়।
৫. Complex Queries with Multiple Conditions (বহু শর্ত সহ জটিল কুইরি)
Q ভাষায় একাধিক শর্তের মাধ্যমে ডেটা ফিল্টার করা যায়। যেমন, একটি কুইরির মধ্যে where, and, or শর্ত ব্যবহার করা যেতে পারে।
Multiple Conditions Query:
select t, product, price from table where product = `apple and price > 100এখানে, দুটি শর্ত product = apple এবং price > 100 একসাথে ব্যবহার করা হয়েছে, অর্থাৎ apple প্রোডাক্টের দাম যদি ১০০ এর বেশি হয়, তবে সেই ডেটা দেখানো হবে।
সারসংক্ষেপ
- Complex Queries: একাধিক অপারেশন যেমন গ্রুপিং, অ্যাগ্রিগেশন, শর্ত, এবং ফিল্টারিং একসাথে ব্যবহার করে ডেটার ওপর গভীর বিশ্লেষণ করা।
- Subqueries: একটি কুইরি অন্য কুইরির মধ্যে ব্যবহৃত হয়ে ডেটা প্রক্রিয়াকরণ করে।
- Nested Queries: সাবকুইরি ও নেস্টেড কুইরির মাধ্যমে ডেটার মধ্যে আরও জটিল সম্পর্ক তৈরি করা।
- Joining Tables: একাধিক টেবিলের মধ্যে সম্পর্ক স্থাপন এবং প্রয়োজনীয় ডেটা একত্রিত করা।
Q ভাষায় complex queries এবং subqueries ব্যবহার করে আপনি দ্রুত এবং কার্যকরভাবে বড় ডেটাসেট থেকে প্রয়োজনীয় ফলাফল বের করতে পারেন।
Read more