PostgreSQL LOG() Function
The PostgreSQL LOG() function returns the base-10 logarithm or logarithm to the specified base of a given number. In special cases it returns the following:
- If the number is less than or equal to 0, then an error is returned.
- If the base is less than or equal to 0, then an error is returned.
- If the base is equal to 1, then an error is returned.
Syntax
/* base-10 logarithm of number */ LOG(number) /* logarithm of number to the specified base */ LOG(base, number)
Parameters
base |
Specify the number. Must be greater than 0 and not equal to 1. |
number |
Required. Specify the number. Must be greater than 0. |
Return Value
Returns the base-10 logarithm or logarithm to the specified base of a given number.
Example 1:
The example below shows the usage of LOG() function.
SELECT LOG(1); Result: 0 SELECT LOG(1.5); Result: 0.1760912590556812 SELECT LOG(5); Result: 0.6989700043360189 SELECT LOG(3, 4); Result: 1.2618595071429149 SELECT LOG(0.7, 0.8); Result: 0.6256216061886873 SELECT LOG(0.5, 10); Result: -3.3219280948873623 SELECT LOG(5, 25); Result: 2.0000000000000000
Example 2:
Consider a database table called Sample with the following records:
Data | x |
---|---|
Data 1 | 0.5 |
Data 2 | 1 |
Data 3 | 5 |
Data 4 | 10 |
Data 5 | 50 |
The statement given below can be used to calculate the base-10 logarithm of column x.
SELECT *, LOG(10, x) AS LOG_Value FROM Sample;
This will produce the result as shown below:
Data | x | LOG_Value |
---|---|---|
Data 1 | 0.5 | -0.3010299956639812 |
Data 2 | 1 | 0.0000000000000000 |
Data 3 | 5 | 0.6989700043360188 |
Data 4 | 10 | 1.0000000000000000 |
Data 5 | 50 | 1.6989700043360188 |
Example 3:
Consider a database table called Sample with the following records:
Data | x | y |
---|---|---|
Data 1 | 0.5 | 2 |
Data 2 | 1 | 2 |
Data 3 | 5 | 2 |
Data 4 | 10 | 10 |
Data 5 | 50 | 10 |
To calculate the logarithm of records of column x with base as records of column y, the following query can be used:
SELECT *, LOG(y, x) AS LOG_Value FROM Sample;
This will produce the result as shown below:
Data | x | y | LOG_Value |
---|---|---|---|
Data 1 | 0.5 | 2 | -1.0000000000000000 |
Data 2 | 1 | 2 | 0.0000000000000000 |
Data 3 | 5 | 2 | 2.3219280948873623 |
Data 4 | 10 | 10 | 1.0000000000000000 |
Data 5 | 50 | 10 | 1.6989700043360188 |
❮ PostgreSQL Functions