ورود

View Full Version : partition By



odiseh
دوشنبه 12 تیر 1385, 11:35 صبح
سلام دوستان

من دیروز یه تاپیک جدید با همین موضوع توی این تالار گذاشتم ولی امروز ناپدید شده . نمی دونم چرا ولی احساس می کنم مسوولین محترم سایت یه تغییراتی دیروز توی این سایت دادن که باعث شده تاپیکهای دیروز تحت الشعاع قرار بگیرند.

بگذریم.

سوال:: آیا partition By در SQL2005 جایگزین Group By شده است؟

AminSobati
دوشنبه 12 تیر 1385, 11:56 صبح
بر سر جواب بنده هم همین بلا اومده!
نه عزیزم، به مثالهای Partition By در BOL رجوع کنید تا کاربردش رو متوجه بشین (دیروز مثال براتون گذاشته بودم!!)

Kamyar.Kimiyabeigi
دوشنبه 12 تیر 1385, 12:00 عصر
در واقع Partition By شبیه به اینه که شما در ranking function از group by استفاده کنین که باعث میشه شما rank مجزایی برای هر Partition بگیرین مثال :


Select
SalesOrderID, SalesPersonID, OrderDate, Row_NUMBER() Over (Partition By SalesPersonID Order By OrderDate) as OrderRank
From
Sales.SalesOrderHeader
Where
SalesPersonID is not null

خروجی select بالا به صورت زیر میشه :


SalesOrderID SalesPersonID OrderDate OrderRank
------------ ------------- ------------------------ ---------
43659 279 2001-07-01 00:00:00.000 1
43660 279 2001-07-01 00:00:00.000 2
43681 279 2001-07-01 00:00:00.000 3
43684 279 2001-07-01 00:00:00.000 4
43685 279 2001-07-01 00:00:00.000 5
43694 279 2001-07-01 00:00:00.000 6
43695 279 2001-07-01 00:00:00.000 7
43696 279 2001-07-01 00:00:00.000 8
43845 279 2001-08-01 00:00:00.000 9
43861 279 2001-08-01 00:00:00.000 10
. . . More
48079 287 2002-11-01 00:00:00.000 1
48064 287 2002-11-01 00:00:00.000 2
48057 287 2002-11-01 00:00:00.000 3
47998 287 2002-11-01 00:00:00.000 4
48001 287 2002-11-01 00:00:00.000 5
48014 287 2002-11-01 00:00:00.000 6
47982 287 2002-11-01 00:00:00.000 7
47992 287 2002-11-01 00:00:00.000 8
48390 287 2002-12-01 00:00:00.000 9
48308 287 2002-12-01 00:00:00.000 10
. . . More