EN
Node.js - PostgreSQL AVG()
0 points
In this article, we would like to show you how to use SQL AVG() function in Node.js.
Note: at the end of this article you can find database preparation SQL queries.
xxxxxxxxxx
1
const { Client } = require('pg');
2
3
const client = new Client({
4
host: '127.0.0.1',
5
user: 'postgres',
6
database: 'database_name',
7
password: 'password',
8
port: 5432,
9
});
10
11
const execute = async (query) => {
12
try {
13
await client.connect(); // gets connection
14
const { rows } = await client.query(query); // sends query
15
console.log(rows);
16
} catch (error) {
17
console.error(error.stack);
18
} finally {
19
await client.end(); // closes connection
20
}
21
};
22
23
execute('SELECT AVG("salary") FROM "users"');

Output:
xxxxxxxxxx
1
[ { 'AVG(`salary`)': 3631.25 } ]
xxxxxxxxxx
1
const { Client } = require('pg');
2
3
const client = new Client({
4
host: '127.0.0.1',
5
user: 'postgres',
6
database: 'dirask',
7
password: 'password',
8
port: 5432,
9
});
10
11
const execute = async (query) => {
12
try {
13
await client.connect(); // gets connection
14
const { rows } = await client.query(query); // sends queries
15
console.table(rows);
16
} catch (error) {
17
console.error(error.stack);
18
} finally {
19
await client.end(); // closes connection
20
}
21
};
22
23
const text = `SELECT * FROM "users"
24
WHERE "salary" < (SELECT AVG("salary") FROM "users")`;
25
26
execute(text);
Output:
xxxxxxxxxx
1
┌─────────┬────┬──────────┬────────────┬───────────────┬───────────┐
2
│ (index) │ id │ name │ surname │ department_id │ salary │
3
├─────────┼────┼──────────┼────────────┼───────────────┼───────────┤
4
│ 0 │ 1 │ 'John' │ 'Stewart' │ 1 │ '3512.00' │
5
│ 1 │ 2 │ 'Chris' │ 'Brown' │ 2 │ '1344.00' │
6
│ 2 │ 6 │ 'Simon' │ 'Collins' │ 4 │ '3320.00' │
7
│ 3 │ 7 │ 'Taylor' │ 'Martin' │ 2 │ '1500.00' │
8
│ 4 │ 8 │ 'Andrew' │ 'Thompson' │ null │ '2100.00' │
9
└─────────┴────┴──────────┴────────────┴───────────────┴───────────┘
create_tables.sql
file:
xxxxxxxxxx
1
CREATE TABLE "users" (
2
"id" SERIAL,
3
"name" VARCHAR(50) NOT NULL,
4
"surname" VARCHAR(50) NOT NULL,
5
"department_id" INTEGER,
6
"salary" DECIMAL(15,2) NOT NULL,
7
PRIMARY KEY ("id")
8
);
insert_data.sql
file:
xxxxxxxxxx
1
INSERT INTO "users"
2
( "name", "surname", "department_id", "salary")
3
VALUES
4
('John', 'Stewart', 1, '3512.00'),
5
('Chris', 'Brown', 2, '1344.00'),
6
('Kate', 'Lewis', 3, '6574.00'),
7
('Ailisa', 'Gomez', NULL, '6500.00'),
8
('Gwendolyn', 'James', 2, '4200.00'),
9
('Simon', 'Collins', 4, '3320.00'),
10
('Taylor', 'Martin', 2, '1500.00'),
11
('Andrew', 'Thompson', NULL, '2100.00');