##В базе данных PG (Postgre) cуществуют 2 таблицы:
##1. Таблица "opers", с операциями по обработке нарушений. В ней хранится информация по всем операциям обработки нарушений.
##| Column | Type | Description
---------------------+--------------------------------+--------------------------------------------------------+
##| viol_oper_id | bigint (PK) | Идентификатор операции обработки нарушения ПДД
##| tr_viol_id | bigint | Идентификатор нарушения ПДД
##| oper_code | integer | Тип операции обработки нарушения ПДД
##| refuse_code | integer | Результирующий код операции обработки нарушения ПДД
##| isp_id | bigint | Идентификатор того, кто произвел обработку нарушения ПДД
##| date_oper | timestamp(0) without time zone | Дата и время операции обработки нарушения ПДД
##| viol_datetime | timestamp(0) without time zone | Дата и время нарушения ПДД
CREATE TABLE OPERS (
tr_viol_id INTEGER PRIMARY KEY,
isp_id INTEGER,
date_oper DATETIME,
viol_datetime DATETIME
);
-- insert
INSERT INTO OPERS VALUES (0001, 10, '2022-01-20', '2018-04-01');
INSERT INTO OPERS VALUES (0002, 100,'2022-01-20', '2018-04-20');
INSERT INTO OPERS VALUES (0003, 56, '2022-01-20', '2018-10-20');
INSERT INTO OPERS VALUES (0004, 156, '2024-01-20', '2017-10-20');
-- fetch
SELECT * FROM OPERS WHERE DATE (date_oper) BETWEEN '2011-04-01' AND '2025-04-20';
CREATE TABLE VIOLS (
tr_viol_id INTEGER PRIMARY KEY,
viol_code INTEGER,
time_check DATETIME,
stage_code INTEGER
);
-- insert
INSERT INTO VIOLS VALUES (0001, 10000, '2018-04-01',355);
INSERT INTO VIOLS VALUES (0002, 10990,'2018-04-20',566);
INSERT INTO VIOLS VALUES (0003, 56456, '2022-01-20',455);
INSERT INTO VIOLS VALUES (0004, 159516, '2024-01-20',4585);
INSERT INTO VIOLS VALUES (0005, 853116, '2024-11-20',485);
SELECT OPERS.tr_viol_id, OPERS.isp_id,OPERS.date_oper,OPERS.viol_datetime,VIOLS.tr_viol_id,VIOLS.viol_code,VIOLS.time_check,VIOLS.stage_code
FROM OPERS RIGHT JOIN VIOLS ON OPERS.tr_viol_id=VIOLS.tr_viol_id;
SELECT * FROM VIOLS WHERE DATE (time_check) BETWEEN '2011-04-01' AND '2024-11-20';
##SELECT tr_viol_id,viol_code,time_check,stage_code FROM VIOLS WHERE viol_code > 10000
SELECT SUM(viol_code) FROM VIOLS