DENSE_RANK () is a window function that assigns the rank of each row within a section or result set without spaces in the ranking of values.The row rank is increased by one from among the different rank values that go before the row. The syntax for the DENSE_RANK () function is as follows:
DENSE_RANK() OVER ( PARTITION BY <expression>[{,<expression>...}] ORDER BY <expression> [ASC|DESC], [{,<expression>...}] )
Here is needs to specify some clarifications:
The PARTITION BY clause divides the result sets created by this FROM clause into sections. The DENSE_RANK () function is applied to each section
The ORDER BY clause determines the order of the rows in each section in which the DENSE_RANK () function works
Unlike the RANK () function, the DENSE_RANK () function always returns consecutive rank values.
Suppose we have a table a with some data examples:
CREATE TABLE а ( val INT ); INSERT INTO а(val) VALUES(1),(2),(2),(3),(4),(4),(5); SELECT * FROM а;
The next statement uses the DENSE_RANK () function to rank each row:
SELECT val, DENSE_RANK() OVER ( ORDER BY val ) my_rank FROM a;
DENSE_RANK () function example in MySQL
For demonstration, the sales table created in the window function guide will be used. The following statement uses the DENSE_RANK () function to rank sales employees by sales amount.
SELECT sales_employee, fiscal_year, sale, DENSE_RANK() OVER (PARTITION BY fiscal_year ORDER BY sale DESC ) sales_rank FROM sales;
Explanations will be given below:
- The PARTITION BY clause divides the result sets into sections using the fiscal year
- The ORDER BY clause indicates the sales order of the sales staff in descending order.
- The DENSE_RANK () function is applied to each section with the row order specified in the ORDER BY clause.
Now’s Done! Yoy know how to use the DENSE_RANK() MySQL!
So this post is outstanding. Thanks!
I am glad to express that I’ve an incredibly excellent uncanny feeling I came upon just
what I needed. I most for sure will makee sure to don?t overlook this web
site and gove it a look regularly.