دسته بندی ها
10:44 1401/11/15

شماره سطرها در Sql Server - نحوه استفاده از Row_Number در Sql

مشخصات سوال کننده :
کاربر : hamdola     امتیاز کاربر : 121     رتبه کاربر : 12
دسته بندی : Sql Server

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3708
هوش مصنوعی

پاسخ هوش مصنوعی

برای شماره گذاری افراد در هر شهر به صورت گروهی، می توانید از تابع ROW_NUMBER() در SQL Server استفاده کنید. این تابع به شما اجازه می دهد که برای هر گروه از نتایج، شماره گذاری منحصر به فردی انجام دهید.

در زیر یک مثال از نحوه استفاده از ROW_NUMBER() برای این منظور آورده شده است:

SELECT 
    ROW_NUMBER() OVER (PARTITION BY City ORDER BY LastName) AS RowNum,
    FirstName,
    LastName,
    City
FROM 
    YourTable
ORDER BY 
    City, LastName;

در این مثال، PARTITION BY City باعث می شود که شماره گذاری برای هر شهر از نو آغاز شود و ORDER BY LastName تعیین می کند که چگونه افراد داخل هر شهر شماره گذاری شوند. شما می توانید بر اساس ستون های دیگر نیز شماره گذاری کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : fateme 13:57 1401/11/15

استفاده از تابع Row_Number برای شمارش مجموعه سطرها در نتیجه

همونطور که خودتون هم در متن سوال گفتید از این تابع برای انتساب شماره سطر در یک مجموعه استفاده می شود. حالا فرض می کنیم که جدولی داریم با فیلدهای زیر :

  • id
  • firstname
  • lastname
  • cityname

جدول ما در Sql Server شامل اطلاعات زیر هست :

آموزش استفاده از row_number

 

خب حالا میخوایم بر اساس شهر کاربران رو دسته بندی کنیم و همچنین بشماریم هر شهر چندکاربر داره.

خیلی ساده می تونیم از دستور زیر استفاده کنید :

Select *,
ROW_NUMBER() Over ( partition by cityname order by id) as RowNumber
From MyUsers

خروجی دستور بالا چیزی مشابه با نتیجه زیر خواهد بود :

نحوه شمارش ردیف ها توسط row_number

همونطوری که میبینید لیست کاربران بر اساس نام شهر مرتب شده و در ردیف آخر هم شمارش تعداد سطرها انجام شده.

به طور کلی برای استفاده از دستور Row_Number در Sql Server از قالب زیر استفاده میشه :

ROW_NUMBER ( )   
    OVER ( [ PARTITION BY value_expression , ... [ n ] ] order_by_clause )
  • Partition By : در این قسمت مشخص می کنیم که گروه بندی بر اساس کدوم فیلد باید انجام بشه.
  • order by : رکوردهای گروه بندی شده رو بر اساس فیلدی که معرفی میشه مرتب می کنه.
به این پاسخ امتیاز بدهید    1
امتیاز: 1635 رتبه: 2
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود