Сортировки и вычисляемые поля

Создадим таблицу для хранения информации о комнатах.

CREATE TABLE rooms (room_id SERIAL PRIMARY KEY, room_name TEXT, room_width FLOAT, room_length FLOAT);

Заполним созданную таблицу.

INSERT INTO rooms (room_name, room_width, room_length) VALUES ('AAA', 5, 8);
INSERT INTO rooms (room_name, room_width, room_length) VALUES ('BBB', 3.2, 2.66);
INSERT INTO rooms (room_name, room_width, room_length) VALUES ('CCC', 8, 1.56);
INSERT INTO rooms (room_name, room_width, room_length) VALUES ('DDD', 12, 0.5);
INSERT INTO rooms (room_name, room_width, room_length) VALUES ('EEE', 2, 3);

Выведем информацию о каждой комнате и площадь каждой комнаты.

SELECT room_name, room_width, room_length, (room_width * room_length) AS room_square FROM rooms;

Выведем информацию о каждой комнате в порядке возрастания площадей комнат.

SELECT room_name, room_width, room_length, (room_width * room_length) AS room_square FROM rooms 
ORDER BY (room_width * room_length) ASC;

Выведем информацию о каждой комнате в порядке убывания площадей комнат.

SELECT room_name, room_width, room_length, (room_width * room_length) AS room_square FROM rooms 
ORDER BY (room_width * room_length) DESC;

Сортировка по нескольким полям

Создадим таблицу для хранения пар чисел.

CREATE TABLE nnn (n1 INTEGER, n2 INTEGER);

Заполним созданную таблицу.

INSERT INTO nnn (n1, n2) VALUES (8, 5);
INSERT INTO nnn (n1, n2) VALUES (7, 5);
INSERT INTO nnn (n1, n2) VALUES (6, 10);
INSERT INTO nnn (n1, n2) VALUES (6, 12);
INSERT INTO nnn (n1, n2) VALUES (6, 13);
INSERT INTO nnn (n1, n2) VALUES (6, 11);

Выведем записи в отсортированном порядке.

Принцип сортировки: вначале сортируем по полю n1 в порядке возрастания, потом по полю n2 в порядке убывания.

SELECT * FROM nnn ORDER BY n1 ASC, n2 DESC;

Last updated

Was this helpful?