diff --git a/ebelykh/postgresql/агрегации и группировки/агрегации.sql b/ebelykh/postgresql/агрегации и группировки/агрегации.sql index 7f7ce9b..7875f0b 100644 --- a/ebelykh/postgresql/агрегации и группировки/агрегации.sql +++ b/ebelykh/postgresql/агрегации и группировки/агрегации.sql @@ -13,7 +13,7 @@ SELECT customer_id, FROM visits v LEFT JOIN transactions t ON v.visit_id = t.visit_id -WHERE transaction_id IS NULL +WHERE t.transaction_id IS NULL GROUP BY customer_id; --Задача 1141 diff --git a/ebelykh/postgresql/функции/функции.sql b/ebelykh/postgresql/функции/функции.sql new file mode 100644 index 0000000..21479c7 --- /dev/null +++ b/ebelykh/postgresql/функции/функции.sql @@ -0,0 +1,20 @@ +--Задача 1211 +SELECT + query_name, + ROUND(AVG(rating * 1.0 / position), 2) AS quality, + ROUND(AVG(CASE WHEN rating < 3 THEN 1 ELSE 0 END) * 100,2) AS poor_query_percentage +FROM Queries +GROUP BY query_name; + +--Задача 1193 +SELECT + TO_CHAR(trans_date, 'YYYY-MM') AS month, + country, + COUNT(*) AS trans_count, + SUM(CASE WHEN state = 'approved' THEN 1 ELSE 0 END) AS approved_count, + SUM(amount) AS trans_total_amount, + SUM(CASE WHEN state = 'approved' THEN amount ELSE 0 END) AS approved_total_amount +FROM Transactions +GROUP BY + TO_CHAR(trans_date, 'YYYY-MM'), + country; \ No newline at end of file