DatabaseCreation: console_6.sql

File console_6.sql, 1.1 KB (added by 231166, 2 days ago)
Line 
1CREATE TEMPORARY TABLE temp_devices1 (
2 device_type VARCHAR(255),
3 last_login TEXT,
4 user_sub_id INT
5);
6
7COPY temp_devices1 (device_type, last_login, user_sub_id)
8FROM 'C:\temp\devices_data_20250422.csv'
9WITH (FORMAT csv, HEADER true, DELIMITER ',');
10
11INSERT INTO Devices (DeviceType, LastLogIn, UserSubscriptionID)
12SELECT
13 device_type,
14 CASE
15 WHEN last_login = '2025-02-29' THEN '2025-02-28'::DATE
16 ELSE last_login::DATE
17 END,
18 user_sub_id
19FROM temp_devices1;
20
21INSERT INTO User_Devices (UserUserID, DevicesDeviceID)
22SELECT UserSubscriptionID, DeviceID
23FROM Devices
24WHERE DeviceID NOT IN (SELECT DevicesDeviceID FROM User_Devices);
25
26
27BEGIN;
28
29INSERT INTO Devices (DeviceType, LastLogIn, UserSubscriptionID)
30SELECT
31 t.device_type,
32 (CURRENT_DATE - (random() * 365)::int),
33 sub.UserSubscriptionID
34FROM user_subscription sub
35CROSS JOIN LATERAL (
36 SELECT device_type
37 FROM temp_devices1
38 ORDER BY random()
39 LIMIT 1
40) t;
41
42COMMIT;
43
44INSERT INTO User_Devices (UserUserID, DevicesDeviceID)
45SELECT UserSubscriptionID, DeviceID
46FROM Devices
47ON CONFLICT DO NOTHING;
48