Найти в Дзене
Базы данных. SQL

Базы данных. SQL

Всё про запросы SQL и работу с базами данных
подборка · 6 материалов
3 месяца назад
Подсчёт сессий пользователей на сайте через SQL
Частая задача подсчёта количества сессий пользователей сайта. Решаем на SQL, пишем в Jupyter Notebook... import pandas as pd import numpy as np import random import sqlite3 from datetime import datetime, timedelta # Настройки генерации num_users = 10 # Количество уникальных пользователей events_per_user = 20 # Среднее количество событий на пользователя start_date = datetime(2024, 1, 1) end_date = datetime(2024, 12, 31) # Генерация данных data = [] for user_id in range(1, num_users + 1): ···# Случайное количество событий для пользователя (от 10 до 100) ···num_events = random...
3 месяца назад
SQL: ROW_NUMBER(), RANK(), DENSE_RANK()
При запросах к БД через SQL часто бывает нужно ранжировать строки таблицы по какому-либо значению и потом, например применять фильтр. Для этого очень удобно использовать функции с окнами: ROW_NUMBER(), RANK(), DENSE_RANK(). Как использовать смотрим в Jupyter Notebook на тестовой БД SQLite. Открываем ноутбук, пишем: import pandas as pd import sqlite3 from contextlib import contextmanager from IPython.display import display data = pd.DataFrame({ 'student': ['Жек Воробьёв', 'Жек Воробьёв', 'Жек Воробьёв',...
3 месяца назад
Заповеди SQL. Премудрость №2
1. Никогда не пиши SQL-запрос без псевдонимов (alias.col_name) или без полного наименования таблицы (table_name.col_name). Это приведёт к ошибкам и сделает код не читаемым. Пример с псевдонимами (alias): SELECT * FROM table1 AS t1 LEFT JOIN table2 AS t2 ON t1.id = t2.id Пример с полными наименованиями таблиц: SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id 2. Не используй RIGHT JOIN, вместо него пиши LEFT JOIN. FULL JOIN есть не во всех базах данных, но его можно эмулировать: SELECT * FROM table1 LEFT JOIN table2 ON table1...
6 месяцев назад
Кодировка в файлах. DataLens
DataLens поддерживает следующие кодировки: При этом в Data Lens от Яндекса можно подключать файлы MS Excel только в формате CSV и XLSX. Если загружаемый CSV-файл в другой кодировке, то при загрузке появится ошибка. Для исправления нужно изменить кодировку файла... Через программерский блокнот Notepad++ (или любой другой): Для изменения кодировки в с помощью python нужно прочитать файл, а потом сохранить: # Импорт библиотеки Pandas import pandas as pd # Чтение CSV файла с указанием исходной кодировки df = pd...
6 месяцев назад
Заповеди SQL. Премудрость №1
Перед тем как работать с реальными данными, всегда тестируйт свои JOIN-запросы на «игрушечных» данных. Это поможет убедиться, что логика запроса корректна, и избежать ошибок при работе с большими объёмами информации. Например, создайте небольшие тестовые таблицы и проверьте, как они объединяются. Для именования столбцов рекомендуется использовать стиль snake_case. Например, user_id или order_date. Это делает код более читаемым и универсальным. Избегайте пробелов и CamelCase, так как они могут вызвать проблемы при работе с некоторыми СУБД...
7 месяцев назад
PostgreSQL. Создать, удалить таблицу из БД
Чтобы создать или удалить таблицу в БД Sqlite3 не достаточно просто выполнить простой SELECT. В Sqlite3 нужно сначала создать курсор... # Подключение к базе данных SQLite con = sqlite3.connect('example.db') # Создаём курсор cur = con.cursor() # Пишем запрос для создания таблицы sql = ''' drop table if exists name_table; -- Не забываем ставить ";" для разделения команд create table name_table as SELECT * from some_table ''' # Выполняем сам запрос cur.execute(sql) Если в запросе будет несколько команд, то нужно изменить функцию: # Выполнение запроса cur...