Implementation process of row_number in MySQL

Implementation process of row_number in MySQL

1. Background

Generally, in a data warehouse environment, we can easily use the row_number function to group data according to a certain dimension to achieve the effect of sorting the data numbers in each group. As shown in the figure below, this is the effect diagram generated in the MySQL environment. The grouping here is based on lcid, and num is equivalent to the effect achieved by the row_number function:

Implementing row_number effect in mysql environment

2. Implementation process

1. Set mysql variables

Set up two variables

set @row_number:=0; --Generate row_number sequence number according to the judgment result of lcid_no set @lcid_no:= 0; --Used to obtain the lcid column data of each row, and then compare it with the lcid data of the previous row. If they are the same, it will increase by 1, otherwise it will be 1

2. Use case when

SELECT @row_number:=CASE
    WHEN @lcid_no = s.lcid THEN @row_number + 1 
    ELSE 1
    END AS num,
    @lcid_no:=s.lcid AS lcid,
	  s.lcid
FROM r_qcloud_approval_fh_d s,(select @orw_number:=0,@lcid_no:=0) t
ORDER BY s.lcid;

3. Process analysis <br /> If there are multiple identical data
1) Under the initial condition, the cursor points to the first data. At this time, lcid_no = 0, lcid_no is not equal to lcid, so row_number = 1
2) The cursor points to the second data, lcid_no = lcid of the previous data, because the lcid of the previous data = the lcid of the current row, so row_number = 2
No duplicate data
1) Under the initial condition, the cursor points to the first data. At this time, lcid_no = 0, lcid_no is not equal to lcid, so row_number = 1

3. Usage scenarios

In a relational database like MySQL, there is no row_number function.

This is the end of this article about the implementation process of row_number in MySQL. For more relevant content about row_number in MySQL, please search for previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope you will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Detailed usage of MYSQL row_number() and over() functions
  • PostgreSQL ROW_NUMBER() OVER() usage explanation
  • row_number() and distinct usage in postgreSQL
  • Postgresql rank() over, dense_rank(), row_number() usage differences
  • Detailed examples of common usage of row_number function in SQL Server
  • Introduction to the use of the four major sql ranking functions ROW_NUMBER, RANK, DENSE_RANK, NTILE
  • SQL ROW_NUMBER() and OVER() method case study

<<:  Learn Node.js from scratch

>>:  In-depth explanation of nginx location priority

Recommend

Summary of some reasons why crontab scheduled tasks are not executed

Preface I recently encountered some problems at w...

Interpreting MySQL client and server protocols

Table of contents MySQL Client/Server Protocol If...

Record a slow query event caused by a misjudgment of the online MySQL optimizer

Preface: I received crazy slow query and request ...

How to use nodejs to write a data table entity class generation tool for C#

Although Microsoft provides T4 templates, I find ...

20 CSS coding tips to make you more efficient (sorted)

In this article, we would like to share with you ...

Summary of knowledge points about events module in Node.js

Through the study and application of Node, we kno...

Detailed example of mysql similar to oracle rownum writing

Rownum is a unique way of writing in Oracle. In O...

Analysis and description of network configuration files under Ubuntu system

I encountered a strange network problem today. I ...

setup+ref+reactive implements vue3 responsiveness

Setup is used to write combined APIs. The interna...

Detailed explanation of the background-position percentage principle

When I was helping someone adjust the code today,...

Draw a heart with CSS3

Achieve resultsRequirements/Functionality: How to...

Detailed explanation of Vue's simple store

The simplest application of store in Vue is globa...

What are mysql dirty pages?

Table of contents Dirty pages (memory pages) Why ...