Авторский канал про Базы Данных и SQL
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!
Cотрудничество: @energy_c
РКН: https://clck.ru/3QREBc
Post #1249
1.98K

- 😁 30
- 👍 10
- 🔥 6
SQ @sql_ready
Showing posts older than #1251 · Back to latest






В этой шпаргалке собраны приёмы для безопасного перехвата ошибок и управления транзакциями. Корректная обработка исключений делает систему устойчивой, предотвращает сбои и сохраняет целостность данных.CREATE TABLE actions (
user_id INT,
action_type TEXT
);
INSERT INTO actions VALUES
(1, 'login'), (1, 'purchase'),
(2, 'login'), (2, 'comment'),
(3, 'login');
SELECT user_id, COUNT(*) AS total_actions
FROM actions
GROUP BY user_id
ORDER BY total_actions DESC;
SELECT
user_id,
COUNT(*) AS total_actions,
RANK() OVER (ORDER BY COUNT(*) DESC) AS rank
FROM actions
GROUP BY user_id;






• Округлим координаты, чтобы объединить близкие точки;
• Посчитаем частоту появлений по каждой зоне;
• Найдём точку с максимальным количеством визитов — «дом».


LAG().LAG(order_date) OVER (PARTITION BY user_id ORDER BY order_date)
order_date - LAG(order_date) OVER (PARTITION BY user_id ORDER BY order_date)
SELECT user_id,
AVG(order_date - LAG(order_date) OVER (PARTITION BY user_id ORDER BY order_date)) AS avg_gap
FROM orders;





• Обновляем данные по связанной таблице и сразу видим результат;
• Используем подзапросы и фильтры для выборочного обновления;
• Узнаём, как RETURNING превращает UPDATE в инструмент аналитики;