சேவைகள் |
CATEGORIES | |||||
|
கணினி |
கவிதைகள் |
பெண்கள் உலகம் |
சிறுவர் பூங்கா |
உடல்நலம் |
தமிழ் சினிமா |
ஆன்மீகம் |
நகைச்சுவை(ங்க...)! | ||||||
|
Email Subscribe |
Serch |
|
Statistics |
Online Users |
|
Site Friend |
|
இணைப்பு கொடுக்க |
Code : |
Vote Plz.. |
|
Main » Articles » மென்பொருள் கற்க » எளிய தமிழில் SQL | [ Add new entry ] |
எளிய தமிழில் SQL - பாகம் 16
இன்றைய பாகம்-16ல் SQL ன் Aggregate Functions மற்றும், Grouping போன்றவற்றைக் காணலாம். இதற்கான ஒரு மாதிரி Table Structure கீழே: இந்த Table ஐப் பயன்படுத்தி இன்றையப் பாகத்தைத் தொடருவோம். Aggregate Functions என்றால் என்ன? SUM, AVG, MIN, MAX, COUNT போன்றவற்றைப் பயன்படுத்தி கணித விடை காணல். இதன் விடையாக ஒரே ஒரு மதிப்பு மட்டும் வெளியாகும். இந்தTableல் மணி, வீரன், சந்த்ரு, ஹாரிஸ் ஆகிய 3 விற்பனையாளர்களும் வெவ்வேறுகாலகட்டங்களில் வேறு வேறு பகுதிகளில் எவ்வளவு தொகைக்கு விற்பனைசெய்துள்ளனர் என்பதை அறியக் கொடுத்துள்ளேன். அனைவரும் சேர்ந்து ஒட்டுமொத்தமாக எவ்வளவு தொகைக்குப் பொருட்களை விற்பனை செய்துள்ளனர். இதற்கு SUM பயன்படுத்தலாம். ஒட்டுமொத்தமான கூடுதல் தொகை. SELECT SUM(SaleAmount) AS [Total Sale Amount] from Sales விடை : 59310 அதிகபட்சமாக விற்பனையான தொகை SELECT MAX(SaleAmount) AS [Maximum] from Sales விடை : 7800 குறைந்தபட்சமாக விற்பனையான தொகை SELECT MIN(SaleAmount) AS [Minimum] from Sales விடை : 400 சராசரித் தொகை SELECT AVG(SaleAmount) AS [Average] from Sales விடை : 3954.000000 மொத்தத்தில் எத்தனை முறை விற்பனை நடந்துள்ளது? SELECT count(*) AS [Total Transactions] from Sales விடை : 15 மொத்தம் எத்தனை விற்பனையாளர்கள் ? SELECT COUNT(DISTINCT SalesMan)AS [Total Persons Involved] FROM Sales விடை:4 இங்கேமாதிரி Tableல் ஒவ்வொரு பிரதிநிதிகளும், ஒன்றுக்கு மேற்பட்டமுறை விற்பனைசெய்துள்ளனர். ஆதலால் ஒவ்வொரு பிரதிநிதியின் தனிப்பட்ட கூடுதல், அதிகபட்ச/ குறைந்தபட்ச விற்பனைத்தொகை முதலியவற்றைக் காண்பதற்கு GROUP BYபயன்படுத்தலாம். ஒவ்வொருவரின் தனிப்பட்ட விற்பனைத்தொகையைக் காண SELECT SalesMan,SUM(SaleAmount) as [Individual SaleAmount] FROM Sales GROUP BY SalesMan விடை : ஒவ்வொருவரின் அதிகபட்ச விற்பனைத்தொகையைக் காண்பதற்கு SELECT SalesMan,MAX(SaleAmount) as [Individual Max Efficiency] FROM Sales GROUP BY SalesMan ஒவ்வொருவரின் குறைந்தபட்ச திறனைக் காண SELECT SalesMan,MIN(SaleAmount) as [Individual Min Amt] FROM Sales GROUP BY SalesMan SELECTஉடன் மேலும் அதிகமான கட்டுப்பாடுகளை விதிப்பதற்கும் Conditionகளைக்கூறுவதற்கும் WHERE சேர்த்துப் பயன்படுத்துவோம். அதுபோல இங்கே AggregateFunctions பயன்படுத்தும்போது HAVING ஐ இணைத்துப் பயன்படுத்துவோம். விற்பனைப் பிரதிநிதிகளின் இரண்டாவது எழுத்து 'a' ஆக உள்ளவர்களையும், அவர்களது ஒட்டுமொத்த விற்றதொகையையும் காண SELECT SalesMan,SUM(SaleAmount) as [Individual SaleAmount] FROM Sales GROUP BY SalesMan HAVING SalesMan LIKE '_a%' _மற்றும் % ஆகிய அடையாளங்களுக்கு Wild card characters என்று பெயர். அதாவதுஇட நிரப்பிகள். _ என்பது ஒரு எழுத்தை மட்டும் நிரப்பும். % என்பது அனைத்துஎழுத்துகளையும் நிரப்பும். ‘_a%' என்றால் முதல் எழுத்து ஏதோஒன்றாகவும், கண்டிப்பாக இரண்டாம் எழுத்து 'a' பிற எழுத்துகளைப் பற்றிக்கவலையில்லை. இப்படி எந்த பிரதிநிதியின் பெயரில் இரண்டாவது எழுத்து 'a'வருகிறதோ அவர்களை மட்டும் காண்பதற்கு. ஒட்டுமொத்தத்தில் 20000 ஐ விட அதிகமாக விற்பனை செய்தவர்களை மட்டும் காண்பதற்கு: SELECT SalesMan, SUM(SaleAmount) as [Individual SaleAmount] FROM Sales GROUP BY SalesMan HAVING SUM(SaleAmount) > 20000 மொத்தவிற்பனை 5000 ரூபாயைவிடக் குறைவாக விற்றவர் யார்? SELECT SalesMan,SUM(SaleAmount) as [Individual SaleAmount] FROM Sales GROUP BY SalesMan HAVING SUM(SaleAmount) 5000 ரூபாய்கள் முதல் 20000 ரூபாய்கள் வரை விற்பனை செய்தோர் யாவர்? SELECT SalesMan,SUM(SaleAmount) as [Individual SaleAmount] FROM Sales GROUP BY SalesMan HAVING SUM(SaleAmount) BETWEEN 1000 AND 20000 கீழே உள்ளதைக் கவனிக்கவும். SELECTSalesMan, SUM(SaleAmount) as [TotalSales], MAX(SaleAmount) as[Maximum], Min(SaleAmount) as [Minimum], count(SaleAmount)as[TotalTransaction] from Sales நான் எதையோ எதிர்பார்த்து இப்படிக்கொடுத்தால் என்ன ஆகும். Sum, Max, Min, Count அனைத்தையும் கொடுத்துள்ளேன்.ஆனால் GROUP BY மட்டும் கொடுக்காமல் விட்டுவிட்டேன். இப்போது என்ன ஆகும்? கீழேயுள்ள பிழைச்செய்திதான் கிடைக்கும். குழுவாகப் பிரித்து ஒவ்வொருவரின் தனித்திறமையைக் காண்பதற்கே GROUP BY பயன்படுகிறது. Msg 8120, Level 16, State 1, Line 1 Column'Sales.SalesMan' is invalid in the select list because it is notcontained in either an aggregate function or the GROUP BY clause. இதைச் சரிசெய்த பிறகு, SELECTSalesMan, SUM(SaleAmount) as [TotalSales], MAX(SaleAmount) as[Maximum], Min(SaleAmount) as [Minimum], count(SaleAmount)as[TotalTransaction] from Sales GROUP BY SalesMan இதன் விடை: நன்றி தமிழ் நெஞ்சம் Source: http://tamilsql.blogspot.com/2009/02/sql-16.html | |
Views: 1309 | |
Total comments: 0 | |