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
What Is the Best Way for Telecom Companies to Monitor Database Performance in Real Time?
- 9 September 2026
- Database Performance Management
The best approach to telecom database performance monitoring is continuous, real-time observability across databases, applications, infrastructure, and workloads. Telecom companies should track query latency, resource utilization, waits, connections, anomalies, and configuration changes from a centralized platform. Intelligent telecom database monitoring helps teams identify performance degradation earlier, accelerate root cause analysis, reduce service disruptions, and maintain … Continue reading “What Is the Best Way for Telecom Companies to Monitor Database Performance in Real Time?”
Why Does Database Performance Matter for Faster E-commerce and In-Store Transactions?
Strong ecommerce database performance helps retailers process online and in-store transactions quickly, maintain accurate inventory, and deliver responsive customer experiences. When databases operate efficiently, product searches, checkout requests, payment workflows, and stock updates can complete with fewer delays. Effective database performance for ecommerce also helps businesses handle traffic spikes, identify bottlenecks, maintain availability, and support … Continue reading “Why Does Database Performance Matter for Faster E-commerce and In-Store Transactions?”
How Can SaaS Companies Improve Database Performance as User and API Traffic Grows?
Strong SaaS database performance becomes increasingly important as user activity, API requests, integrations, and application workloads grow. SaaS companies can improve SaaS database performance by monitoring high-impact SQL, understanding multi-tenant workloads, reducing query latency, detecting database bottlenecks, tracking API-driven database demand, optimizing infrastructure utilization, and using database observability to identify emerging performance problems before customers … Continue reading “How Can SaaS Companies Improve Database Performance as User and API Traffic Grows?”
How Can Universities Improve Database Performance for Student Information Systems and LMS Platforms?
Strong education database performance is essential for universities that depend on Student Information Systems, Learning Management Systems, admissions portals, online examinations, digital libraries, and student-facing applications. Universities can improve education database performance by monitoring SQL workloads, optimizing slow queries, establishing performance baselines, reducing database bottlenecks, planning capacity for enrollment and examination peaks, and using database … Continue reading “How Can Universities Improve Database Performance for Student Information Systems and LMS Platforms?”