Pivot এবং Unpivot হল SQL-এ ডেটার ফরম্যাট পরিবর্তন করার দুটি গুরুত্বপূর্ণ কৌশল। এগুলি সাধারণত ডেটা বিশ্লেষণে ব্যবহৃত হয় যেখানে আপনি ডেটাকে রো থেকে কলামে এবং কলাম থেকে রো-তে রূপান্তর করতে চান। এগুলি SQL Server-এ সাধারণত ব্যবহৃত হয়, তবে অন্য ডেটাবেস সিস্টেমেও কিছু বিকল্প কৌশল থাকতে পারে।
1. Pivot Query
Pivot হল একটি SQL কৌশল যা রো ডেটাকে কলামে রূপান্তর করে। এটি সাধারণত যখন আপনি গ্রুপিং করতে চান এবং ফলস্বরূপ ডেটা কলাম হিসাবে দেখতে চান, তখন ব্যবহৃত হয়। Pivot ডেটাকে এমনভাবে সংগঠিত করে যাতে বিভিন্ন মান গুলি কলামে রূপান্তরিত হয় এবং তাদের উপর গণনা করা হয়।
Pivot Query এর উদ্দেশ্য:
- গ্রুপড ডেটা দেখানো: একটি নির্দিষ্ট কলামের ভিত্তিতে ডেটাকে গ্রুপ করা।
- আগ্রেগেট ফাংশন: ডেটার উপর কোনো অ্যাগ্রিগেট ফাংশন (যেমন,
SUM(),AVG(),COUNT()) প্রয়োগ করা।
Pivot Query এর সিনট্যাক্স:
SELECT <columns>
FROM (
SELECT <columns>, <value_column>
FROM <table_name>
) AS source_table
PIVOT (
<aggregate_function>(<value_column>)
FOR <column_to_be_pivoted> IN (<list_of_new_columns>)
) AS pivot_table;
Pivot Query উদাহরণ:
ধরা যাক, আপনার কাছে একটি Sales টেবিল আছে যেখানে প্রতি মাসে পণ্য বিক্রির পরিমাণ এবং মূল্য সংরক্ষিত হয়:
| Product | Month | Sales |
|---|---|---|
| A | Jan | 100 |
| A | Feb | 150 |
| B | Jan | 200 |
| B | Feb | 250 |
এখন আপনি এই তথ্যের উপর ভিত্তি করে পণ্যগুলোর বিক্রির পরিমাণ মাস অনুযায়ী কলামে দেখতে চান। Pivot Query ব্যবহার করলে ফলাফল হবে:
SELECT Product, [Jan], [Feb]
FROM (
SELECT Product, Month, Sales
FROM Sales
) AS source_table
PIVOT (
SUM(Sales)
FOR Month IN ([Jan], [Feb])
) AS pivot_table;
ফলাফল:
| Product | Jan | Feb |
|---|---|---|
| A | 100 | 150 |
| B | 200 | 250 |
এখানে, Month কলামটি Jan এবং Feb কলামে রূপান্তরিত হয়ে গেছে, এবং তাদের উপর SUM(Sales) অ্যাগ্রিগেট ফাংশন প্রয়োগ করা হয়েছে।
2. Unpivot Query
Unpivot হল একটি SQL কৌশল যা কলামগুলোকে রো-তে রূপান্তর করে। এটি তখন ব্যবহৃত হয় যখন আপনি একটি টেবিলের কলাম ভিত্তিক ডেটাকে রো ভিত্তিক ডেটায় রূপান্তর করতে চান।
Unpivot Query এর উদ্দেশ্য:
- ডেটার ফরম্যাট পরিবর্তন করা: কলাম-ভিত্তিক ডেটাকে রো-ভিত্তিক ডেটায় রূপান্তর করা।
- ডেটার বিশ্লেষণ সহজ করা: যখন কলামগুলির মধ্যে বেশ কিছু ভ্যালু থাকে এবং সেগুলোকে একটি সিঙ্গেল কলামে রূপান্তর করতে চান।
Unpivot Query এর সিনট্যাক্স:
SELECT <columns>
FROM <table_name>
UNPIVOT (
<value_column>
FOR <column_name> IN (<list_of_columns_to_unpivot>)
) AS unpivoted_table;
Unpivot Query উদাহরণ:
ধরা যাক, আপনার কাছে একটি Sales টেবিল রয়েছে যেখানে মাসের বিক্রির পরিমাণ পণ্য ভিত্তিক কলামে সংরক্ষিত রয়েছে:
| Product | Jan | Feb |
|---|---|---|
| A | 100 | 150 |
| B | 200 | 250 |
এখন আপনি যদি এই টেবিলটি Unpivot করতে চান, যাতে মাসের তথ্যকে একক কলামে একত্রিত করা যায়, তাহলে Unpivot ব্যবহার করা হবে:
SELECT Product, Month, Sales
FROM (
SELECT Product, [Jan], [Feb]
FROM Sales
) AS source_table
UNPIVOT (
Sales FOR Month IN ([Jan], [Feb])
) AS unpivoted_table;
ফলাফল:
| Product | Month | Sales |
|---|---|---|
| A | Jan | 100 |
| A | Feb | 150 |
| B | Jan | 200 |
| B | Feb | 250 |
এখানে, Jan এবং Feb কলামগুলি Month নামে একটি একক কলামে রূপান্তরিত হয়েছে, এবং তাদের বিক্রির পরিমাণ Sales কলামে আনা হয়েছে।
Pivot এবং Unpivot এর পার্থক্য:
| বিষয় | Pivot | Unpivot |
|---|---|---|
| ফাংশন | রো থেকে কলামে ডেটা রূপান্তর করা। | কলাম থেকে রো-তে ডেটা রূপান্তর করা। |
| ব্যবহার | ডেটাকে ভিন্ন ভিন্ন কলামে নিয়ে আসার জন্য, যেমন মাসের বিক্রির পরিমাণ। | কলামের মধ্যে বিভিন্ন ভ্যালু একত্রিত করে একটি কলামে আনা। |
| উদাহরণ | বিক্রির পরিমাণ মাস ভিত্তিক ডেটায় দেখানো। | মাস ভিত্তিক বিক্রির পরিমাণ একক কলামে রূপান্তরিত করা। |
| এগজাম্পল | [Jan], [Feb] কলামগুলোকে Month কলামে রূপান্তরিত করা। | Month এবং Sales কলাম তৈরি করে মাসের তথ্য একত্রিত করা। |
সারাংশ
- Pivot হল রো ডেটাকে কলামে রূপান্তর করার জন্য ব্যবহৃত একটি শক্তিশালী কৌশল, যা ডেটা বিশ্লেষণে সাহায্য করে যখন আপনি বিভিন্ন ভ্যালুদের উপর ভিত্তি করে অ্যাগ্রিগেট করতে চান।
- Unpivot হল কলামগুলোকে রো-তে রূপান্তর করার প্রক্রিয়া, যা আপনাকে ডেটার বিভিন্ন ভ্যালুগুলোকে একত্রিত করে একক কলামে পরিণত করতে সহায়তা করে।
এগুলি SQL-এ ডেটার বিশ্লেষণ এবং প্রদর্শন সহজ করতে ব্যবহৃত হয়, বিশেষ করে যখন ডেটা খুব জটিল বা বড় পরিসরের হয়।
Read more