Web appOpen in Telegram

Postتا حالا Running Total تو SQL Server نوشتی و با خیال راحت رد شدی؟ 😌

1 January 2026
H
تا حالا Running Total تو SQL Server نوشتی و با خیال راحت رد شدی؟ 😌 📌 معمولاً برای Running Total یه چیزی شبیه این می‌نویسیم: SUM(TotalDue) OVER ( PARTITION BY CustomerID ORDER BY OrderDate ) همه‌چیز هم ظاهراً درسته… اما دقیقاً همین‌جا مشکل شروع میشه 😐 🔍 مشکل کجاست؟ وقتی داخل OVER فقط ORDER BY می‌نویسیم و چیز دیگه‌ای مشخص نمی‌کنیم، خود SQL Server به‌صورت پیش‌فرض از این استفاده می‌کنه 👇 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW و این یعنی چی؟ 🤔 یعنی اگر تو ستون ORDER BY (مثلاً OrderDate) مقدار تکراری وجود داشته باشه: اونقوت SQL Server تمام ردیف‌هایی که تاریخ یکسان دارن رو «یک ردیف منطقی» در نظر می‌گیره و Running Total برای همه اون‌ها با هم محاسبه میشه نتیجه؟ ➕ جمع یه‌هو می‌پره 😵‍💫 چیزی که حس می‌کنیم غلطه، ولی در واقع «غیرمنتظره» است ❗️ نکته مهم: 1- SQL Server اشتباه نکرده 2- ما ناخواسته رفتار RANGE رو فعال کردیم 🚀 راه‌حل درست و حرفه‌ای: اگه Running Total واقعی می‌خوای، یعنی ردیف‌به‌ردیف و بدون پرش، باید صریح بنویسی: SUM(TotalDue) OVER ( PARTITION BY CustomerID ORDER BY OrderDate ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) یا حتی کوتاه‌تر: ROWS UNBOUNDED PRECEDING ✔️ محاسبه دقیق ✔️ بدون رفتار عجیب ✔️ بازدهی خیلی بهتر (In-Memory به‌جای TempDB) 🧠 جمع‌بندی همیشه Defaultها دوست ما نیستن استفاده از RANGE فقط وقتی خوبه که عمداً بخوای Tieها یکی حساب بشن برای ۹۹٪ سناریوهای Running Total → ROWS رو همیشه صریح بنویس یه خط کداضافه ، ولی کلی تفاوت تو نتیجه و Performance 🔥 #SQLServer #TSQL #DBA #Performance #WindowFunctions #RunningTotal #DatabaseTips
19 · 2.4K ·

Nearby in the feed

HHamidrezaسلام دوستان 📉 Shrink در SQL Server به روایت یک فضای کار اشتراکی! فرض کن یکی میره یه فضای کار اشتراکی 🏢 اوایل کارش کوچیکه، یه میز اشتراکی می‌گیره. کم‌کم کارش می‌HHamidrezaسلام دوستان 💼🌳 چالش همیشگی ما با درخت‌های سلسله‌مراتبی در SQL! همیشه وقتی با ساختار درختی کار می‌کنیم، معمولاً از ریشه شروع می‌کنیم و تا برگ‌ها می‌رویم. اما یه
this message
HHamidrezaسلام دوستان 🚨 تا حالا شده بری Shrink File و با خودت بگی: «اینا رو با یه SELECT نمیشه دید؟!» 🤔 خبر خوب برای DBAها و Backend Engineerها 🎉 بله… میشه! و حتی تمیزتر،HHamidrezaسلام دوستان عزیزم امیدوارم حالتون عالی باشه من بعد از بیش از یک ماه تازه الان موفق شدم وصل بشم این کانال رو در بله هم ساختم گروه مشابهدهم در بله ساختم که اگه شر
SSQL ServerSQL Server@sql_server · channel · Tech
3 907subscribers868average post reach
Venue feed Open in Telegram

An open public feed from the search index ChatCrawler — “Google for public Telegram”; refreshed as the venue is crawled. Times are UTC.

Public content only, official Telegram API. About · FAQ · What we do not do · Remove a page · Catalog · Search · How we count