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

How to expand Linux swap memory

Swap memory mainly means that when the physical m...

Correct use of Vue function anti-shake and throttling

Preface 1. Debounce: After a high-frequency event...

The process of installing and configuring nginx in win10

1. Introduction Nginx is a free, open source, hig...

The webpage cannot be opened because the div element lacks a closing tag

At first I thought it was a speed issue, so I late...

CSS uses radial-gradient to implement coupon styles

This article will introduce how to use radial-gra...

How to configure ssh to log in to Linux using git bash

1. First, generate the public key and private key...

Application of Hadoop counters and data cleaning

Data cleaning (ETL) Before running the core busin...

VMware vCenter 6.7 installation process (graphic tutorial)

background I originally wanted to download a 6.7 ...

How to deploy SpringBoot project using Docker

The development of Docker technology provides a m...

Share 13 basic syntax of Typescript

Table of contents 1. What is Ts 2. Basic Grammar ...