دستور DENSE_RANK در SQL یک تابع تحلیلی است که برای پیدا کردن رتبه مقادیر داخلی یک ستون در یک نتیجه پرس و جو استفاده میشود. این دستور به شما امکان میدهد تا رتبهبندی دادهها را بر اساس مقادیر ستون مشخص شده، انجام دهید. در این مقاله به بررسی کاربرد و نحوه استفاده از دستور DENSE_RANK در SQL پرداخته خواهد شد.
تا قبل از آشنایی با دستور DENSE_RANK، نیاز است که با دستور RANK در SQL آشنا شوید. دستور RANK نیز به شما امکان میدهد تا رتبهبندی دادهها را بر اساس مقادیر ستون مشخص شده، انجام دهید. با این حال، با استفاده از دستور RANK، در صورتی که دو مقدار یکسان داشته باشید، رتبه آنها یکسان خواهد بود و رتبه بعدی را نخواهید داشت. این مشکل با استفاده از دستور DENSE_RANK قابل حل است.
برای استفاده از دستور DENSE_RANK در SQL، از قالب زیر استفاده میشود:
“`
DENSE_RANK() OVER (PARTITION BY column ORDER BY column ASC/DESC)
“`
در این قالب، PARTITION BY مشخص میکند که رتبهبندی بر اساس کدام ستون انجام شود و ORDER BY نحوه مرتبسازی را مشخص میکند. مقدار ASC به معنی مرتبسازی صعودی و مقدار DESC به معنی مرتبسازی نزولی است.
برای مثال، فرض کنید که یک جدول شامل نام و نمره دانشآموزان دارید. میخواهید رتبه دانشآموزان را بر اساس نمره آنها مشخص کنید. در این صورت، میتوانید از دستور DENSE_RANK استفاده کنید. به عنوان مثال:
“`
SELECT name, score, DENSE_RANK() OVER (ORDER BY score DESC) AS rank
FROM students;
“`
در این مثال، دستور DENSE_RANK بر اساس ستون score از جدول students استفاده شده است. ستون rank نیز برای نمایش رتبه دانشآموزان ایجاد شده است.
با استفاده از دستور DENSE_RANK در SQL، میتوانید به راحتی رتبهبندی دادهها را بر اساس مقادیر ستون مورد نظر انجام دهید. این دستور به شما امکان میدهد که رتبههای متمایز را بدون در نظر گرفتن احتمال تکرار مقادیر بدست آورید.