SQL Server 2012 introduces new analytical function PERCENTILE_CONT().
The book online gives following definition of this function: Calculates a percentile based on a continuous distribution of the column value in Microsoft SQL Server 2012 Release Candidate 0 (RC 0). The result is interpolated and might not be equal to any of the specific values in the column.
If you are clear with understanding of the function – no need to read further. If you got lost here is the same in simple words – it is lot like finding median with percentile value.
Now let’s have fun following query:
USE AdventureWorks
GO
SELECT SalesOrderID, OrderQty, ProductID,
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY ProductID)
OVER (PARTITION BY SalesOrderID) AS MedianCont
FROM Sales.SalesOrderDetail
WHERE SalesOrderID IN (43670, 43669, 43667, 43663)
ORDER BY SalesOrderID DESC
GO
The above query will give us the following result:
You can see that I have used PERCENTILE_COUNT(0.5) in query, which is similar to finding median. Let me explain above diagram with little more explanation. The defination of median is as following:
In case of Even Number of elements = In ordered list add the two digits from the middle and devide by 2
In case of Odd Numbers of elements = In ordered list select the digits from the middle
I hope this example gives clear idea how PERCENTILE_CONT() works.
Reference:Â Pinal Dave (https://blog.sqlauthority.com)
6 Comments. Leave new
its easy to understand thanks for share it.
i have one table , example table_student that have 2 file is student_ID and Student_Name . what can i loop file name of table_student , even thought i know table name is table_Student.
anyone help me . thank
As usual, you make things sound so much simpler and easier to understand.
I was looking on Books Online and going “huh?” and the moment I read your post, it just clicks instantly.
Thank you.
Why are you looking for the median on product ID, what purpose does the average of an identifying column offer.
Wouldn’t you typically look for the median on the number of items ordered per product ID (or order) with this data set.
How to find the median in row in sql server 2008 R2? for Example row data, 1,2,6,5,4,3,7,8 and 5,6,2,1,5,6,7