Preamble
PostgreSQL random function can be used to return a random number or a random number within a range.
Syntax of the random PostgreSQL function
random( )
Parameters and function arguments
- There are no parameters or arguments for the random function.
Note:
- The random function will return a value from 0 (inclusive) to 1 (excluding), so the value will be in the range >= 0 and <1.
- Use the set seed function to set the initial value for random.
- The random function returns a completely random number if no initial number is set (the initial value is set by the set seed function).
- The random function will return a repeatable sequence of random numbers every time a specific initial value is used (the initial value is set using the set seed function).
Random decimal range
To create a random decimal number between two values (range), you can use the following formula:
SELECT random()*(b-a)+a;
Where a is the smallest number, and b is the largest number for which you want to generate a random number.
SELECT random()*(25-10)+10;
The above formula will generate a random decimal number >= 10 and < 25. (Note: this formula will never return 25 because random will never return 1).
Random range of integers
To create a random integer between two values (range), you can use the following formula:
SELECT floor(random()*(b-a+1))+a;
Where a is the smallest number, and b is the largest number for which you want to generate a random number.
SELECT floor(random()*(25-10+1))+10;
The above formula will generate a random integer from 10 to 25 inclusive.
The random function can be used in the following PostgreSQL versions
PostgreSQL 11, PostgreSQL 10, PostgreSQL 9.6, PostgreSQL 9.5, PostgreSQL 9.4, PostgreSQL 9.3, PostgreSQL 9.2, PostgreSQL 9.1, PostgreSQL 9.0, PostgreSQL 8.4.
Example of a random number
Let’s see how to use the random function in PostgreSQL to generate a random number >= 0 and < 1. For example:
SELECT random();
-Result: 0.0186054138466716
Although the random function will return a value above 0, it will never return a value of 1. It will always return a value below 1.
Example of a random decimal range
Let’s see how to use the PostgreSQL random function to generate a random decimal number between two numbers (i.e.: range).
For example, the next one will generate a random decimal value that >= 1 and < 10 (Note: it will never return 10):
SELECT random()*(10-1)+1;
--Result: 1.40731927193701
In the following example, a random decimal value >= 25 and < 40 will be generated (Note: it will never return 40):
SELECT random()*(40-25)+25;
--Result: 33.7993366038427
Example of a random integer range
Let’s see how to use the random function in PostgreSQL to generate a random integer between two numbers (i.e.: including the range).
For example, the next one will generate a random integer value from 1 to 10:
SELECT floor(random()*(10-1+1))+1;
--Result: 6
In the following example, a random integer value between 25 and 40 will be generated:
SELECT floor(random()*(40-25+1))+25;
--Result: 28
PostgreSQL: Generate 1000 Rows
About Enteros
Enteros offers a patented database performance management SaaS platform. It proactively identifies root causes of complex business-impacting database scalability and performance issues across a growing number of clouds, RDBMS, NoSQL, and machine learning database platforms.
The views expressed on this blog are those of the author and do not necessarily reflect the opinions of Enteros Inc. This blog may contain links to the content of third-party sites. By providing such links, Enteros Inc. does not adopt, guarantee, approve, or endorse the information, views, or products available on such sites.
Are you interested in writing for Enteros’ Blog? Please send us a pitch!
RELATED POSTS
How Can Telecom Companies Prevent Database Bottlenecks During Mass Service Activations and Provisioning Events?
- 23 September 2026
- Database Performance Management
Telecom companies can avoid database bottlenecks during mass service activations by monitoring SQL performance, provisioning transactions, database waits, locking, resource utilisation, workload spikes and application dependencies. Good telecom service provisioning database performance management allows teams to identify bottlenecks earlier, tune high-impact queries, plan capacity more intelligently, and keep activation workflows humming along during periods of … Continue reading “How Can Telecom Companies Prevent Database Bottlenecks During Mass Service Activations and Provisioning Events?”
How Can Real Estate Platforms Prevent Database Slowdowns During High-Volume Property Searches and Listing Updates?
By continuously monitoring SQL performance, property-search workloads, listing updates, database waits, resource utilisation and unusual workload changes, real estate platforms can avoid database slowdowns. Effective real estate database performance monitoring enables technology teams to identify bottlenecks sooner, optimise high-impact queries, enhance database observability and sustain responsive property search and listing experiences during periods of heavy … Continue reading “How Can Real Estate Platforms Prevent Database Slowdowns During High-Volume Property Searches and Listing Updates?”
How Can Retail IT Teams Improve Database Capacity Planning for Peak Demand?
- 22 September 2026
- Database Performance Management
Retail IT teams can improve retail database capacity planning by analyzing historical workloads, monitoring SQL performance, tracking CPU, memory, storage, connections, and transaction growth, and forecasting future demand. Strong retail database performance management helps teams identify capacity risks before peak events, while Enteros supports proactive planning with observability, anomaly detection, predictive analytics, and workload intelligence. … Continue reading “How Can Retail IT Teams Improve Database Capacity Planning for Peak Demand?”
How Can Telecom Providers Improve Database Scalability for 5G and IoT Growth?
By integrating SQL optimisation, continuous observability, workload monitoring, anomaly detection, capacity planning, and effective cloud resource management, telecom operators can increase the scalability of telecom databases. Infrastructure that can manage quickly increasing device and transaction loads is necessary for robust database performance for 5G networks. Enteros assists telecom teams with capacity forecasting, bottleneck identification, and … Continue reading “How Can Telecom Providers Improve Database Scalability for 5G and IoT Growth?”