آموزش برنامه نویسی | اجرای پروژه | نیک آموز
🌐 Site: www.NikAmooz.com
📞 Tel: 021 - 91070017
ارتباط با مشاور:
@NikamoozSupport
Post #2816
281

👨💻 آخرین رکورد هر گروه را دقیق انتخاب کنید
برای گرفتن تازهترین سفارش هر مشتری، فقط استفاده از
یک الگوی روشن، رتبهدادن داخل هر گروه است:
در این مثال فرضی،
نکته مهم این است که ستونهای
برای گرفتن تازهترین سفارش هر مشتری، فقط استفاده از
MAX(OrderDate) کافی نیست؛ چون هنوز باید سایر ستونهای همان ردیف را پیدا کنید و زمانهای مساوی هم میتوانند نتیجه را مبهم کنند.یک الگوی روشن، رتبهدادن داخل هر گروه است:
WITH ranked AS (
SELECT *,
ROW_NUMBER() OVER (
PARTITION BY CustomerId
ORDER BY OrderDate DESC, OrderId DESC
) AS rn
FROM Sales.Orders
)
SELECT *
FROM ranked
WHERE rn = 1;
در این مثال فرضی،
PARTITION BY شمارهگذاری را برای هر مشتری جدا میکند. ترتیب نزولی تاریخ، تازهترین سفارش را اول میآورد و OrderId تکلیف زمانهای برابر را روشن میکند.نکته مهم این است که ستونهای
ORDER BY باید ترتیب یکتایی بسازند؛ وگرنه انتخاب ردیف اول میتواند پایدار نباشد.- ❤ 7















