linoj.do.am

சேவைகள்
CATEGORIES
போட்டோஷாப்
எளிய தமிழில் SQL
எளிய தமிழில் PHP
எளிய தமிழில் JAVA
எளிய தமிழில் C++
கணினி
கவிதைகள்
பெண்கள் உலகம்
சிறுவர் பூங்கா
உடல்நலம்
தமிழ் சினிமா
ஆன்மீகம்
நகைச்சுவை(ங்க...)!
சர்தார்ஜி
குட்டீஸ்
மருத்துவம் & நீதிமன்றம்
பொது
அரசியல்
குடும்பம்
Email Subscribe

பதிவுகளை நீங்கள் உங்கள் ஈமெயில் மூலமாகவே பெறலாம். உங்கள் ஈமெயில் முகவரியை இங்கு பதிவு செய்து கொள்ளுங்கள்

Enter your email address:

Serch
Statistics
Online Users

Site Friend
linotech.info
ommuruga.fr
இணைப்பு கொடுக்க
linoj.do.am
Code :
இணையத் தமிழ் உலகம் - க்கு இணைப்பு கொடுக்க மேலே உள்ள 'code' -ஐ Copy செய்து உங்கள் தளம் / Blog-ல் Paste செய்யவும்.

linotechinfo.com
LinoTechinfo - க்கு இணைப்பு கொடுக்க மேலே உள்ள 'code' -ஐ Copy செய்து உங்கள் தளம் / Blog-ல் Paste செய்யவும்.

linotech.info
LinoTech.info - க்கு இணைப்பு கொடுக்க மேலே உள்ள 'code' -ஐ Copy செய்து உங்கள் தளம் / Blog-ல் Paste செய்யவும்.
Vote Plz..
Tamil Top Blogs

My Topsites List
கல்வி
கல்விச்சேவை
யாழ். சென்ஜோன்ஸ்
திருகோணமலை இந்து
சாவகச்சேரி இந்து
ஹாட்லி கல்லூரி
கொக்குவில் இந்து
தமிழ் செஸ்
Jaffna Central - Canada
Vembadi Girl's High School
University of Jaffna
cutsa
University of Moratuwa University of Kelaniya
University of Colombo
The Open Uni of SL
Uni of Sri
University of Peradeniya
Jayewardenepura
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
Category: எளிய தமிழில் SQL | Added by: m_linoj (2009-06-27)
Views: 1247 | Rating: 0.0/0
Total comments: 0
Only registered users can add comments.
[ Sign Up | Login ]