Are you looking to find how to use the ROW_NUMBER() function within the Snowflake cloud data warehouse or maybe you are looking for a solution, how to use the ROW_NUMBER function in the Snowflake? If you are looking for any of these problem solutions then you have landed on the correct page. I will also show you what and how to use ROW_NUMBER() function. I will explain the ROW_NUMBER() function by taking a practical example. So don’t waste time let’s start step by step guide to understanding what is the ROW_NUMBER() expression.
Contents
What is ROW_NUMBER() Function?
ROW_NUMBER() function helps to return the unique row number within each row. For example, if I want to know specific data i.e. ‘John’ which is present in the 20th row, then the row_number will be displayed for that particular data is 20.
How can we use the ROW_NUMBER() Function ?
ROW_NUMBER() function is used to return a unique row number for each row within a window partition. The row number starts at 1 and continues up sequentially.
What is the Syntax of ROW_NUMBER() function in Snowflake?
-- Syntax :
ROW_NUMBER () over ( [partition by expression-1[,..]] [order by expression-2,[…]] [ ASC | DESC ])
ROW_NUMBER() Argument Details :
Here we are having only expressions that will be used depending on the requirement.
- Expression-1 specifies the columns or expressions to partition by. we can partition by 0, 1, or more expressions. For example, If you are selecting data across multiple states and you want a row number from 1 to N within each state then in that case we can partition by the state.
- Expression-2 specifies the columns or expressions that will be used to determine the order of the rows. We can order 1 or more by expressions. For example, If we want to list the farmers in order by the production of corn.
Full Example of ROW_NUMBER() function in Snowflake:
-- Create a Table
create or replace TABLE EMP (
ID NUMBER(38,0),
NAME VARCHAR(30) COMMENT 'NAME OF THE EMPLOYEE',
INFO VARCHAR(20) DEFAULT 'NOT-NULL'
)
-- Insert data
Insert into demo.public.emp(id,name) values(1,'Ram'),(2,'RAJU'),(3,'Sameer'), (4,'Sai Kumar'), (5,'Naveen Sai'), (6,'Seshi Kumar'),(7,'Rajiv Ram');
-- Select the Table data
select * from demo.public.emp;
+----+-------------+----------+
| ID | NAME | INFO |
|----+-------------+----------|
| 1 | Ram | NOT-NULL |
| 2 | RAJU | NOT-NULL |
| 3 | Sameer | NOT-NULL |
| 4 | Sai Kumar | NOT-NULL |
| 5 | Naveen Sai | NOT-NULL |
| 6 | Seshi Kumar | NOT-NULL |
| 7 | Rajiv Ram | NOT-NULL |
+----+-------------+----------+
-- Apply ROW NUMBER to table data
select state, bushels_produced, row_number()
over (order by bushels_produced desc)
from corn_production;
+--------+------------------+------------+
| state | bushels_produced | ROW_NUMBER |
+--------+------------------+------------+
| Kansas | 130 | 1|
| Kansas | 120 | 2|
| Iowa | 110 | 3|
| Iowa | 100 | 4|
+--------+------------------+------------+
select
symbol,
exchange,
shares,
row_number() over (partition by exchange order by shares) as row_number
from trades;
+------+--------+------+----------+
|SYMBOL|EXCHANGE|SHARES|ROW_NUMBER|
+------+--------+------+----------+
|SPY |C | 250| 1|
|AAPL |C | 250| 2|
|AAPL |C | 300| 3|
|SPY |N | 100| 1|
|AAPL |N | 300| 2|
|SPY |N | 500| 3|
|QQQ |N | 800| 4|
|QQQ |N | 2000| 5|
|YHOO |N | 5000| 6|
+------+--------+------+----------+
As we can see from the above example we got the row numbers according to the Exchange data as expected.
When you should use ROW_NUMBER() Function in Snowflake?
There are certain use case scenarios when it is recommended to use the ROW_NUMBER function within the Snowflake cloud data warehouse which are as follows:
- You want to apply the row number to a table data to get the sequential order.
- You want to get unique id’s for a table data.
Real World Use Case Scenarios for ROW_NUMBER Function in Snowflake.
- The persons standing in a queue in sequential order.
- The number plates for vehicle registration.
- House numbers will also be in such an order to use row number.
ROW_NUMBER() Snowflake Official Documentation Link
Final Thoughts
In this article, we have learned about ROW_NUMBER() function and uses with the examples explained clearly. I have also covered different scenarios with a practical example that could be possible. I hope the information that was provided is helped in gaining the knowledge.
Please share your comments and suggestions in the comment section below and I will try to answer all your queries as time permits.
- For Azure Study material Join Telegram group : Telegram group link:
- Azure Jobs and other updates Follow me on LinkedIn: Azure Updates on LinkedIn
- Azure Tutorial Videos: Videos Link
- Date_Trunc() in Snowflake
- Date_Add() in Snowflake
- Parse_Json() in Snowflake
- Insert() in Snowflake
- Right() in Snowflake
- StartsWith() in Snowflake
- Replace () in Snowflake
- Position() function
- ListAgg() function
- Like() Function
- LikeAll() Function
- Like Any() Function
- Current_Date() Function
- Row_Number() Function
- Cast() Function
- Show() Function
- ISNULL() Function
- Lag() Function
- ILIKE() Function
- DateDiff() Function
- Substring() Function
- ILIKE ANY() Function
- Round() Function
- To_Date() Function
- Concat() Function
- Length() Function
- TRIM(), LTRIM(), RTRIM()
- SPLIT() Function
- Reverse() Function
- Repeat() Function
- Unicode() Function
- IFNULL() Function
- Pivot() Function
- IFF() Function