ரிலேஷனல் அட்டவணைகள் வடிவில் ஏராளமான தரவுகளை சேமிக்கவும். இந்த அட்டவணைகள் எத்தனை வரிசைகள் மற்றும் நெடுவரிசைகளைக் கொண்டிருக்கலாம். ஆனால், வரிசை-நிலை தரவை நெடுவரிசை தரவுக்கு மாற்ற வேண்டுமானால் என்ன செய்வது? சரி, SQL பிவோட்டில் உள்ள இந்த கட்டுரையில், நீங்கள் ஒரு SQL சேவையகத்தில் ஒரு நெடுவரிசைக்கு வரிசைகளை எவ்வாறு மாற்றலாம் என்பதைக் காண்பிப்பேன்.
இந்த கட்டுரையில் பின்வரும் தலைப்புகள் விவரிக்கப்படும்:
php பொருளை வரிசைக்கு மாற்றுகிறது
SQL இல் PIVOT என்றால் என்ன?
ஒற்றை நெடுவரிசையின் தனித்துவமான மதிப்புகளை பல நெடுவரிசைகளாக மாற்றுவதன் மூலம் அட்டவணை மதிப்பை சுழற்ற PIVOT பயன்படுத்தப்படுகிறது. இது வரிசைகளை நெடுவரிசை மதிப்புகளுக்கு சுழற்ற பயன்படுகிறது மற்றும் மீதமுள்ள நெடுவரிசை மதிப்புகளில் தேவைப்படும்போது திரட்டல்களை இயக்குகிறது.
மறுபுறம், UNPIVOT எதிர் நடவடிக்கைகளை மேற்கொள்ள பயன்படுத்தப்படுகிறது. எனவே, ஒரு குறிப்பிட்ட அட்டவணையின் நெடுவரிசைகளை நெடுவரிசை மதிப்புகளாக மாற்ற இது பயன்படுகிறது.
இந்த கட்டுரையில் நகரும், SQL பிவோட்டின் தொடரியல் புரிந்துகொள்வோம்.
தொடரியல்:
அல்லாத முன்னிலைப்படுத்தப்பட்ட நெடுவரிசை பெயர், [முதல் மையப்படுத்தப்பட்ட நெடுவரிசை பெயர்] AS நெடுவரிசை பெயர், [இரண்டாவது மையப்படுத்தப்பட்ட நெடுவரிசை பெயர்] AS நெடுவரிசை பெயர், [மூன்றாவது மையப்படுத்தப்பட்ட நெடுவரிசை பெயர்] AS நெடுவரிசை பெயர், ... [கடைசியாக மையப்படுத்தப்பட்ட நெடுவரிசை பெயர்] AS நெடுவரிசை பெயர் (தரவை உருவாக்கும் வினவல்) [மாற்று. [ மைய நெடுவரிசை])) AS [பிவோட் அட்டவணைக்கான மாற்றுப்பெயர்]
இங்கே,நீங்கள் பயன்படுத்தலாம் பிரிவு மூலம் ஆர்டர் மதிப்புகளை ஏறுவரிசையில் அல்லது இறங்கு வரிசையில் வரிசைப்படுத்த. SQL மற்றும் அதன் அடிப்படை தொடரியல் ஆகியவற்றில் PIVOT என்றால் என்ன என்பதை இப்போது நீங்கள் அறிவீர்கள், முன்னோக்கி நகர்ந்து அதை எவ்வாறு பயன்படுத்துவது என்று பார்ப்போம்.
எடுத்துக்காட்டுகள்
உங்கள் சிறந்த புரிதலுக்காக, எல்லா எடுத்துக்காட்டுகளையும் உங்களுக்கு விளக்க பின்வரும் அட்டவணையை பரிசீலிப்பேன்.
சப்ளையர் அட்டவணை:
சப்ளையர் ஐடி | DaysofManufacture | செலவு | வாடிக்கையாளர் ஐடி | கொள்முதல் ஐஐடி |
ஒன்று | 12 | 1230 | பதினொன்று | பி 1 |
2 | இருபத்து ஒன்று | 1543 | 22 | பி 2 |
3 | 32 | 2. 3. 4. 5 | பதினொன்று | பி 3 |
4 | 14 | 8765 | 22 | பி 1 |
5 | 42 | 3452 | 33 | பி 3 |
6 | 31 | 5431 | 33 | பி 1 |
7 | 41 | 2342 | பதினொன்று | பி 2 |
8 | 54 | 3654 | 22 | பி 2 |
9 | 33 | 1234 | பதினொன்று | பி 3 |
10 | 56 | 6832 | 33 | பி 2 |
ஒவ்வொரு வாடிக்கையாளரும் செலவழித்த சராசரி செலவை மீட்டெடுக்க ஒரு எளிய வினவலை எழுதுவோம்.
வாடிக்கையாளர் ஐஐடியைத் தேர்ந்தெடுக்கவும், ஏ.வி.ஜி (செலவு) சப்ளையர்களிடமிருந்து சராசரி கோஸ்டாஃப் கஸ்டமராக வாடிக்கையாளர் ஐ.டி.
வெளியீடு:
வாடிக்கையாளர் ஐடி | சராசரி காஸ்டோஃப் வாடிக்கையாளர் |
பதினொன்று | 1787.75 |
22 | 4654 |
33 | 5238.33 |
இப்போது, மேலே உள்ள அட்டவணையை முன்னிலைப்படுத்த விரும்புகிறோம் என்று சொல்லலாம். இங்கே, வாடிக்கையாளர் ஐடி நெடுவரிசை மதிப்புகள் நெடுவரிசை தலைப்புகளாக மாறும்.
- ஒரு வரிசை மற்றும் மூன்று நெடுவரிசைகளுடன் பிவோட் அட்டவணையை உருவாக்கவும் 'சராசரி காஸ்டோஃப் வாடிக்கையாளர்' AS செலவு_அகார்டிங்_டூ_ வாடிக்கையாளர்கள், [11], [22], [33] FROM (வாடிக்கையாளரைத் தேர்ந்தெடுங்கள், சப்ளையர்களிடமிருந்து செலவு) மூலமாக PIVOT (AVG (செலவு) வாடிக்கையாளருக்கான ( [11], [22], [33])) AS பிவோட் டேபிள்
வெளியீடு:
செலவு_அறிவிப்பு_தொகுப்பு வாடிக்கையாளர்கள் | பதினொன்று | 22 | 33 |
சராசரி காஸ்டோஃப் வாடிக்கையாளர் | 1787.75 | 4654 | 5238.33 |
குறிப்பு: நீங்கள் பயன்படுத்தும் போது மொத்த செயல்பாடுகள் PIVOT உடன், திரட்டலைக் கணக்கிடும்போது பூஜ்ய மதிப்புகள் கருதப்படாது.
சரி, அது ஒரு அடிப்படை எடுத்துக்காட்டு, ஆனால் PIVOT பிரிவு எவ்வாறு செயல்பட்டது என்பதை இப்போது புரிந்துகொள்வோம்.
PIVOT பிரிவின் வேலை
மேலே குறிப்பிடப்பட்டுள்ளபடி, ஒரு பிவோட் அட்டவணையை உருவாக்க, நீங்கள் பின்வரும் படிகளைப் பின்பற்ற வேண்டும்:
- முன்னிலைப்படுத்த நெடுவரிசைகளைத் தேர்ந்தெடுக்கவும்
- பின்னர், ஒரு மூல அட்டவணையைத் தேர்ந்தெடுக்கவும்.
- PIVOT ஆபரேட்டரைப் பயன்படுத்துங்கள், பின்னர் மொத்த செயல்பாடுகளைப் பயன்படுத்தவும்.
- மைய மதிப்புகளைக் குறிப்பிடுங்கள்.
முன்னிலைப்படுத்த நெடுவரிசைகளைத் தேர்ந்தெடுக்கவும்
ஆரம்பத்தில், எங்கள் முடிவுகளில் சேர்க்கப்பட வேண்டிய புலங்களை நாங்கள் குறிப்பிட வேண்டும். எங்கள் எடுத்துக்காட்டில், பிவோட் அட்டவணையில் AverageCostofCustomer நெடுவரிசையை நான் கருதினேன். 11, 22 மற்றும் 33 என்ற நெடுவரிசை தலைப்புகளுடன் மூன்று நெடுவரிசைகளை உருவாக்கினோம். எடுத்துக்காட்டு-
'AverageCostofCustomer' AS Cost_According_To_Customers, [11], [22], [33]
மூல அட்டவணையைத் தேர்ந்தெடுக்கவும்
அடுத்து, நீங்கள் முன்னிலை அட்டவணைக்கான மூல தரவை வழங்கும் SELECT அறிக்கையை குறிப்பிட வேண்டும். எங்கள் எடுத்துக்காட்டில், நாங்கள் சப்ளையர்கள் அட்டவணையில் இருந்து வாடிக்கையாளர் ஐடி மற்றும் செலவைத் திருப்பித் தருகிறோம்.
(வாடிக்கையாளர் ஐஐடியைத் தேர்ந்தெடுக்கவும், சப்ளையர்களிடமிருந்து செலவு) மூலமாக
PIVOT ஆபரேட்டரைப் பயன்படுத்துங்கள், பின்னர் மொத்த செயல்பாடுகளைப் பயன்படுத்தவும்
அடுத்து, பிவோட் அட்டவணையை உருவாக்கும்போது பயன்படுத்த வேண்டிய மொத்த செயல்பாட்டை நீங்கள் குறிப்பிட வேண்டும். எங்கள் எடுத்துக்காட்டில், சராசரி செலவைக் கணக்கிட AVG செயல்பாட்டைப் பயன்படுத்தினேன்.
பிவோட் (ஏ.வி.ஜி (செலவு)
மைய மதிப்புகளைக் குறிப்பிடுங்கள்
இறுதியாக, இதன் விளைவாக பிவோட் அட்டவணையில் சேர்க்கப்பட வேண்டிய மதிப்புகளை நீங்கள் குறிப்பிட வேண்டும். இந்த மதிப்புகள் பிவோட் அட்டவணையில் உள்ள நெடுவரிசை தலைப்புகளாகப் பயன்படுத்தப்படும்.
வாடிக்கையாளர் IN இல் ([11], [22], [33])) பிவோட் டேபிள்
PIVOT ஆபரேட்டர்கள் செயல்படுவது அப்படித்தான். SQL PIVOT இல் இந்த கட்டுரையில் நகரும், இது SQL UNPIVOT இலிருந்து எவ்வளவு வித்தியாசமானது என்பதைப் புரிந்துகொள்வோம்.
SQL UNPIVOT
PIVOT இன் எதிர் செயல்பாட்டைச் செய்ய SQL UNPIVOT ஆபரேட்டர் பயன்படுத்தப்படுகிறது. நெடுவரிசை தரவை வரிசை-நிலை தரவுகளாக சுழற்ற இது பயன்படுகிறது. UNPIVOT இன் தொடரியல், PIVOT ஐப் போன்றது. ஒரே வித்தியாசம் என்னவென்றால், நீங்கள் பயன்படுத்த வேண்டும் ' UNPIVOT ” .
உதாரணமாக:
சப்ளையர் ஐடி, ஏஏஏ, பிபிபி மற்றும் சிசிசி நெடுவரிசைகளுடன் ஒரு அட்டவணையை உருவாக்குவோம். மேலும், சில மதிப்புகளைச் செருகவும்.
அட்டவணை மாதிரியை உருவாக்கவும் (சப்ளையர் ஐடி, ஏஏஏ இன்ட், பிபிபி இன்ட், சிசிசி இன்ட்) மாதிரி மதிப்புகளுக்குச் செல்லுங்கள் (1,3,5,6) மாதிரி மதிப்புகளுக்குச் செருகவும் (2,9,2,8) மாதிரி மதிப்புகளில் செருகவும் (3, 8,1,7) GO
வெளியீடு:
சப்ளையர் ஐடி | AAA | பிபிபி | சி.சி.சி. |
ஒன்று | 3 | 5 | 6 |
2 | 9 | 2 | 8 |
3 | 8 | ஒன்று | 7 |
இப்போது, அட்டவணையைத் தேர்வுசெய்ய விரும்புகிறோம். அதைச் செய்ய, நீங்கள் பின்வரும் குறியீட்டைக் குறிப்பிடலாம்:
சப்ளையர் ஐடி, வாடிக்கையாளர்கள், தயாரிப்புகளைத் தேர்ந்தெடுக்கவும் (சப்ளையர், ஏஏஏ, பிபிபி, சி.சி.சி மாதிரியிலிருந்து தேர்ந்தெடுக்கவும்) ப யூன்பிவோட் (வாடிக்கையாளர்களுக்கான தயாரிப்புகள் (ஏஏஏ, பிபிபி, சிசிசி)) எடுத்துக்காட்டாக GO
சப்ளையர் ஐடி | வாடிக்கையாளர்கள் | தயாரிப்புகள் |
ஒன்று | AAA | 3 |
ஒன்று | பிபிபி | 5 |
ஒன்று | சி.சி.சி. | 6 |
2 | AAA | 9 |
2 | பிபிபி | 2 |
2 | சி.சி.சி. | 8 |
3 | AAA | 8 |
3 | பிபிபி | ஒன்று தகவல்தொடர்புகளில் உருமாறும் வகைகள் |
3 | சி.சி.சி. | 7 |
நீங்கள் SQL PIVOT மற்றும் UNPIVOT ஐப் பயன்படுத்தலாம். இதன் மூலம், இந்த கட்டுரையின் முடிவுக்கு வருகிறோம். SQL ஐ எவ்வாறு பயன்படுத்துவது என்பதை நீங்கள் புரிந்து கொண்டீர்கள் என்று நம்புகிறேன். நீங்கள் மேலும் அறிய விரும்பினால் MySQL இந்த திறந்த மூல தொடர்புடைய தரவுத்தளத்தை அறிந்து கொள்ளுங்கள், பின்னர் எங்கள் பாருங்கள் இது பயிற்றுவிப்பாளர் தலைமையிலான நேரடி பயிற்சி மற்றும் நிஜ வாழ்க்கை திட்ட அனுபவத்துடன் வருகிறது. இந்த பயிற்சி MySQL ஐ ஆழமாகப் புரிந்துகொள்ளவும், இந்த விஷயத்தில் தேர்ச்சி பெறவும் உதவும்.
எங்களுக்கு ஒரு கேள்வி கிடைத்ததா? SQL பிவோட்டில் இந்த கட்டுரையின் கருத்துகள் பிரிவில் இதைக் குறிப்பிடவும், நான் உங்களிடம் திரும்புவேன்.