feat: add pet-project and gitignore

This commit is contained in:
nazarenko.ae
2026-06-10 00:14:21 +07:00
parent cd69553c99
commit 6aba8b4580
19 changed files with 911 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
__pycahe__
.venv
.vscode

132
pet-project/create_dm_ch.py Normal file
View File

@@ -0,0 +1,132 @@
import os
from pathlib import Path
from pyspark.sql import DataFrame, SparkSession
from pyspark.sql import functions as F
spark = SparkSession.builder.appName("create_dm_gp").master("local[*]").getOrCreate()
def read_csv(csv_filename: str, path: Path = Path("src/ch")) -> DataFrame:
return spark.read.csv(
path=str(path / csv_filename),
header=True,
inferSchema=True,
)
core_dim_user = read_csv("core_dim_user.csv")
core_dim_course = read_csv("core_dim_course.csv")
core_dim_lesson = read_csv("core_dim_lesson.csv")
core_fact_enrollments = read_csv("core_fact_enrollments.csv")
core_fact_lesson_views = read_csv("core_fact_lesson_views.csv")
def lesson_popularity_summary() -> DataFrame:
result = (
core_dim_lesson
.alias("l")
.join(
core_dim_course.alias("c"),
F.col("c.course_id") == F.col("l.course_id"),
how="inner",
)
.join(
core_fact_lesson_views.alias("lv"),
F.col("l.lesson_id") == F.col("lv.lesson_id"),
how="left",
)
.groupBy(["l.lesson_id", "l.title", "c.title", "l.course_id"])
.agg(
F.count("lv.lesson_id").alias("total_views"),
F.count_distinct("lv.user_id").alias("unique_users"),
F.min("lv.viewed_at").alias("first_view"),
F.max("lv.viewed_at").alias("last_view"),
)
.select(
"lesson_id",
F.col("l.title").alias("lesson_title"),
"course_id",
F.col("c.title").alias("course_title"),
"total_views",
"unique_users",
"first_view",
"last_view",
)
)
return result
def inactive_users_summary() -> DataFrame:
active_users = core_fact_lesson_views.select("user_id").distinct()
inactive_users = core_dim_user.join(active_users, on="user_id", how="left_anti")
registered_courses_count = core_fact_enrollments.groupBy("user_id").agg(
F.count_distinct("course_id").alias("registered_courses_count")
)
result = inactive_users.join(
registered_courses_count, on="user_id", how="left"
).select(
"user_id",
"name",
"email",
"age",
F.coalesce("registered_courses_count", F.lit(0)).alias(
"registered_courses_count"
),
"registration_date",
)
return result
def course_completion_rate() -> DataFrame:
course_stats = core_dim_lesson.groupBy("course_id").agg(
F.count("lesson_id").alias("lessons_in_course")
)
view_stats = core_fact_lesson_views.groupBy("user_id", "course_id").agg(
F.count_distinct("lesson_id").alias("lessons_viewed")
)
result = (
core_dim_user
.alias("u")
.join(
view_stats.alias("vs"),
F.col("u.user_id") == F.col("vs.user_id"),
how="left",
)
.join(core_dim_course.alias("c"), on="course_id", how="inner")
.join(course_stats.alias("cs"), on="course_id", how="left")
.select(
"u.user_id",
F.col("u.name").alias("user_name"),
"c.course_id",
F.col("c.title").alias("course_title"),
"lessons_in_course",
"lessons_viewed",
F.round(
F.coalesce("lessons_viewed", F.lit(0)) / F.col("lessons_in_course"),
2,
).alias("completion_rate"),
)
)
return result
output_dir = Path("marts/ch")
os.makedirs(output_dir, exist_ok=True)
lesson_popularity_summary().write.mode("overwrite").option("header", "true").csv(
str(output_dir / "lesson_popularity_summary")
)
inactive_users_summary().write.mode("overwrite").option("header", "true").csv(
str(output_dir / "inactive_users_summary")
)
course_completion_rate().write.mode("overwrite").option("header", "true").csv(
str(output_dir / "course_completion_rate")
)

163
pet-project/create_dm_gp.py Normal file
View File

@@ -0,0 +1,163 @@
import os
from pathlib import Path
import pyspark.sql.functions as F
from pyspark.sql import DataFrame, SparkSession
spark = SparkSession.builder.appName("create_dm_pg").master("local[*]").getOrCreate()
def read_csv(csv_filename: str, path: Path = Path("src/gp")) -> DataFrame:
return spark.read.csv(
path=str(path / csv_filename),
header=True,
inferSchema=True,
)
users = read_csv("users.csv").withColumnRenamed("id", "user_id")
courses = read_csv("courses.csv").withColumnRenamed("id", "course_id")
lessons = read_csv("lessons.csv").withColumnRenamed("id", "lesson_id")
enrollments = read_csv("enrollments.csv")
lesson_views = read_csv("lesson_views.csv")
def user_activity_summary() -> DataFrame:
enrollment_stats = enrollments.groupBy("user_id").agg(
F.count("course_id").alias("enrollment_count")
)
view_stats = lesson_views.groupBy("user_id").agg(
F.count_distinct("lesson_id").alias("viewed_lessons_count"),
F.min("viewed_at").alias("first_view"),
F.max("viewed_at").alias("last_view"),
)
possible_lessons = (
enrollments
.join(lessons, on="course_id", how="inner")
.groupBy("user_id")
.agg(F.count_distinct("lesson_id").alias("possible_lessons"))
)
result = (
users
.join(enrollment_stats, on="user_id", how="inner")
.join(view_stats, on="user_id", how="left")
.join(possible_lessons, on="user_id", how="left")
)
result = result.withColumn(
"engagement_rate",
F.concat(
F.round(
F.coalesce(F.col("viewed_lessons_count"), F.lit(0))
* 100.0
/ F.col("possible_lessons"),
2,
),
F.lit("%"),
),
)
result = result.select(
"user_id",
"name",
"enrollment_count",
"viewed_lessons_count",
"first_view",
"last_view",
"engagement_rate",
)
return result
def course_summary() -> DataFrame:
enrollment_stats = enrollments.groupBy("course_id").agg(
F.count_distinct("user_id").alias("unique_users")
)
view_stats = (
lessons
.alias("l")
.join(lesson_views.alias("lv"), on="lesson_id", how="left")
.groupBy("course_id")
.agg(
F.count_distinct("l.lesson_id").alias("lessons_count"),
F.count("lv.lesson_id").alias("total_views"),
F.min("lv.viewed_at").alias("first_view"),
F.max("lv.viewed_at").alias("last_view"),
)
)
result = courses.join(enrollment_stats, on="course_id", how="inner").join(
view_stats, on="course_id", how="inner"
)
result = result.withColumn(
"avg_views_per_user",
F.round(
F.coalesce(F.col("total_views"), F.lit(0)) / F.col("unique_users"),
2,
),
).select(
"course_id",
"title",
"unique_users",
"lessons_count",
"total_views",
"avg_views_per_user",
"first_view",
"last_view",
)
return result
def platform_summary() -> DataFrame:
total_users = users.agg(F.count("*").alias("total_users"))
total_courses = courses.agg(F.count("*").alias("total_courses"))
total_lessons = lessons.agg(F.count("*").alias("total_lessons"))
users_with_views = lesson_views.agg(
F.count_distinct("user_id").alias("users_with_views")
)
lessons_per_course = lessons.groupBy("course_id").agg(
F.count_distinct("lesson_id").alias("lessons_count")
)
avg_lessons_per_course = lessons_per_course.agg(
F.round(F.avg("lessons_count"), 2).alias("avg_lessons_per_course")
)
views_per_lesson = lesson_views.groupBy("lesson_id").agg(
F.count("*").alias("total_views")
)
avg_views_per_lesson = views_per_lesson.agg(
F.round(F.avg("total_views"), 2).alias("avg_views_per_lesson")
)
result = (
total_users
.crossJoin(total_courses)
.crossJoin(total_lessons)
.crossJoin(users_with_views)
.crossJoin(avg_lessons_per_course)
.crossJoin(avg_views_per_lesson)
)
return result
output_dir = Path("marts/gp")
os.makedirs(output_dir, exist_ok=True)
user_activity_summary().write.mode("overwrite").option("header", "true").csv(
str(output_dir / "user_activity_summary")
)
course_summary().write.mode("overwrite").option("header", "true").csv(
str(output_dir / "course_summary")
)
platform_summary().write.mode("overwrite").option("header", "true").csv(
str(output_dir / "platform_summary")
)

163
pet-project/create_dm_pg.py Normal file
View File

@@ -0,0 +1,163 @@
import os
from pathlib import Path
import pyspark.sql.functions as F
from pyspark.sql import DataFrame, SparkSession
spark = SparkSession.builder.appName("create_dm_pg").master("local[*]").getOrCreate()
def read_csv(csv_filename: str, path: Path = Path("src/pg")) -> DataFrame:
return spark.read.csv(
path=str(path / csv_filename),
header=True,
inferSchema=True,
)
users = read_csv("users.csv").withColumnRenamed("id", "user_id")
courses = read_csv("courses.csv").withColumnRenamed("id", "course_id")
lessons = read_csv("lessons.csv").withColumnRenamed("id", "lesson_id")
enrollments = read_csv("enrollments.csv")
lesson_views = read_csv("lesson_views.csv")
def user_activity_summary() -> DataFrame:
enrollment_stats = enrollments.groupBy("user_id").agg(
F.count("course_id").alias("enrollment_count")
)
view_stats = lesson_views.groupBy("user_id").agg(
F.count_distinct("lesson_id").alias("viewed_lessons_count"),
F.min("viewed_at").alias("first_view"),
F.max("viewed_at").alias("last_view"),
)
possible_lessons = (
enrollments
.join(lessons, on="course_id", how="inner")
.groupBy("user_id")
.agg(F.count_distinct("lesson_id").alias("possible_lessons"))
)
result = (
users
.join(enrollment_stats, on="user_id", how="inner")
.join(view_stats, on="user_id", how="left")
.join(possible_lessons, on="user_id", how="left")
)
result = result.withColumn(
"engagement_rate",
F.concat(
F.round(
F.coalesce(F.col("viewed_lessons_count"), F.lit(0))
* 100.0
/ F.col("possible_lessons"),
2,
),
F.lit("%"),
),
)
result = result.select(
"user_id",
"name",
"enrollment_count",
"viewed_lessons_count",
"first_view",
"last_view",
"engagement_rate",
)
return result
def course_summary() -> DataFrame:
enrollment_stats = enrollments.groupBy("course_id").agg(
F.count_distinct("user_id").alias("unique_users")
)
view_stats = (
lessons
.alias("l")
.join(lesson_views.alias("lv"), on="lesson_id", how="left")
.groupBy("course_id")
.agg(
F.count_distinct("l.lesson_id").alias("lessons_count"),
F.count("lv.lesson_id").alias("total_views"),
F.min("lv.viewed_at").alias("first_view"),
F.max("lv.viewed_at").alias("last_view"),
)
)
result = courses.join(enrollment_stats, on="course_id", how="inner").join(
view_stats, on="course_id", how="inner"
)
result = result.withColumn(
"avg_views_per_user",
F.round(
F.coalesce(F.col("total_views"), F.lit(0)) / F.col("unique_users"),
2,
),
).select(
"course_id",
"title",
"unique_users",
"lessons_count",
"total_views",
"avg_views_per_user",
"first_view",
"last_view",
)
return result
def platform_summary() -> DataFrame:
total_users = users.agg(F.count("*").alias("total_users"))
total_courses = courses.agg(F.count("*").alias("total_courses"))
total_lessons = lessons.agg(F.count("*").alias("total_lessons"))
users_with_views = lesson_views.agg(
F.count_distinct("user_id").alias("users_with_views")
)
lessons_per_course = lessons.groupBy("course_id").agg(
F.count_distinct("lesson_id").alias("lessons_count")
)
avg_lessons_per_course = lessons_per_course.agg(
F.round(F.avg("lessons_count"), 2).alias("avg_lessons_per_course")
)
views_per_lesson = lesson_views.groupBy("lesson_id").agg(
F.count("*").alias("total_views")
)
avg_views_per_lesson = views_per_lesson.agg(
F.round(F.avg("total_views"), 2).alias("avg_views_per_lesson")
)
result = (
total_users
.crossJoin(total_courses)
.crossJoin(total_lessons)
.crossJoin(users_with_views)
.crossJoin(avg_lessons_per_course)
.crossJoin(avg_views_per_lesson)
)
return result
output_dir = Path("marts/pg")
os.makedirs(output_dir, exist_ok=True)
user_activity_summary().write.mode("overwrite").option("header", "true").csv(
str(output_dir / "user_activity_summary")
)
course_summary().write.mode("overwrite").option("header", "true").csv(
str(output_dir / "course_summary")
)
platform_summary().write.mode("overwrite").option("header", "true").csv(
str(output_dir / "platform_summary")
)

View File

@@ -0,0 +1,6 @@
course_id,title,category,created_at
5,Основы машинного обучения,data,2023-03-15
1,SQL для начинающих,data,2023-01-01
2,Python для анализа данных,programming,2023-01-15
3,BI с нуля,business,2023-03-01
4,Excel для аналитиков,business,2023-02-01
1 course_id title category created_at
2 5 Основы машинного обучения data 2023-03-15
3 1 SQL для начинающих data 2023-01-01
4 2 Python для анализа данных programming 2023-01-15
5 3 BI с нуля business 2023-03-01
6 4 Excel для аналитиков business 2023-02-01

View File

@@ -0,0 +1,19 @@
lesson_id,title,duration_min,course_id
1,SELECT и FROM,10,1
2,JOIN,15,1
3,WHERE и фильтрация,12,1
4,Агрегации и GROUP BY,18,1
5,Подзапросы,25,1
6,Pandas основы,20,2
7,NumPy,15,2
9,Основы BI,12,3
10,Метрики и дашборды,18,3
11,Power BI введение,20,3
12,Формулы в Excel,15,4
13,Сводные таблицы,18,4
14,Графики и диаграммы,14,4
15,Введение в ML,20,5
16,Линейная регрессия,30,5
17,Классификация,28,5
18,Кластеризация,25,5
8,Визуализация данных,22,2
1 lesson_id title duration_min course_id
2 1 SELECT и FROM 10 1
3 2 JOIN 15 1
4 3 WHERE и фильтрация 12 1
5 4 Агрегации и GROUP BY 18 1
6 5 Подзапросы 25 1
7 6 Pandas основы 20 2
8 7 NumPy 15 2
9 9 Основы BI 12 3
10 10 Метрики и дашборды 18 3
11 11 Power BI введение 20 3
12 12 Формулы в Excel 15 4
13 13 Сводные таблицы 18 4
14 14 Графики и диаграммы 14 4
15 15 Введение в ML 20 5
16 16 Линейная регрессия 30 5
17 17 Классификация 28 5
18 18 Кластеризация 25 5
19 8 Визуализация данных 22 2

View File

@@ -0,0 +1,21 @@
user_id,name,age,email,registration_date
20,Tina,25,tina@mail.com,2023-04-18
1,Alice,25,alice@mail.com,2023-01-10
2,Bob,30,bob@gmail.com,2023-02-05
3,Charlie,22,charlie@mail.com,2023-02-20
4,Diana,28,diana@mail.com,2023-03-01
5,Ethan,35,ethan@gmail.com,2023-03-10
6,Frank,29,frank@mail.com,2023-01-05
7,Grace,26,grace@gmail.com,2023-01-12
8,Henry,32,henry@mail.com,2023-01-20
9,Iris,24,iris@gmail.com,2023-02-10
10,Jack,27,jack@mail.com,2023-04-15
11,Kelly,23,kelly@gmail.com,2023-04-20
12,Leo,31,leo@mail.com,2023-01-15
13,Mia,26,mia@gmail.com,2023-01-18
14,Nina,28,nina@mail.com,2023-01-08
15,Oscar,33,oscar@gmail.com,2023-01-10
16,Paul,29,paul@mail.com,2023-02-15
17,Quinn,24,quinn@gmail.com,2023-03-20
18,Rita,27,rita@mail.com,2023-04-01
19,Sam,30,sam@gmail.com,2023-04-10
1 user_id name age email registration_date
2 20 Tina 25 tina@mail.com 2023-04-18
3 1 Alice 25 alice@mail.com 2023-01-10
4 2 Bob 30 bob@gmail.com 2023-02-05
5 3 Charlie 22 charlie@mail.com 2023-02-20
6 4 Diana 28 diana@mail.com 2023-03-01
7 5 Ethan 35 ethan@gmail.com 2023-03-10
8 6 Frank 29 frank@mail.com 2023-01-05
9 7 Grace 26 grace@gmail.com 2023-01-12
10 8 Henry 32 henry@mail.com 2023-01-20
11 9 Iris 24 iris@gmail.com 2023-02-10
12 10 Jack 27 jack@mail.com 2023-04-15
13 11 Kelly 23 kelly@gmail.com 2023-04-20
14 12 Leo 31 leo@mail.com 2023-01-15
15 13 Mia 26 mia@gmail.com 2023-01-18
16 14 Nina 28 nina@mail.com 2023-01-08
17 15 Oscar 33 oscar@gmail.com 2023-01-10
18 16 Paul 29 paul@mail.com 2023-02-15
19 17 Quinn 24 quinn@gmail.com 2023-03-20
20 18 Rita 27 rita@mail.com 2023-04-01
21 19 Sam 30 sam@gmail.com 2023-04-10

View File

@@ -0,0 +1,46 @@
user_id,course_id,enrolled_at
1,1,2023-01-15 00:00:00.000
1,2,2023-02-01 00:00:00.000
1,4,2023-02-10 00:00:00.000
2,1,2023-01-20 00:00:00.000
2,3,2023-03-15 00:00:00.000
3,1,2023-02-25 00:00:00.000
3,2,2023-03-05 00:00:00.000
4,2,2023-03-10 00:00:00.000
4,3,2023-04-01 00:00:00.000
5,5,2023-03-20 00:00:00.000
6,1,2023-01-06 00:00:00.000
6,2,2023-01-10 00:00:00.000
6,3,2023-03-08 00:00:00.000
6,4,2023-02-05 00:00:00.000
7,1,2023-01-13 00:00:00.000
7,2,2023-02-01 00:00:00.000
7,3,2023-03-10 00:00:00.000
8,1,2023-01-22 00:00:00.000
8,2,2023-01-22 00:00:00.000
8,3,2023-01-22 00:00:00.000
9,1,2023-02-15 00:00:00.000
9,4,2023-02-12 00:00:00.000
10,1,2023-04-16 00:00:00.000
11,2,2023-04-21 00:00:00.000
12,1,2023-01-16 00:00:00.000
12,3,2023-03-10 00:00:00.000
13,2,2023-01-19 00:00:00.000
13,4,2023-02-20 00:00:00.000
14,1,2023-01-09 00:00:00.000
14,2,2023-01-09 00:00:00.000
14,3,2023-01-09 00:00:00.000
14,4,2023-02-01 00:00:00.000
14,5,2023-03-20 00:00:00.000
15,1,2023-01-11 00:00:00.000
15,3,2023-03-05 00:00:00.000
16,2,2023-02-16 00:00:00.000
16,4,2023-02-16 00:00:00.000
17,3,2023-03-22 00:00:00.000
17,5,2023-03-25 00:00:00.000
18,1,2023-04-02 00:00:00.000
18,4,2023-04-05 00:00:00.000
19,1,2023-04-11 00:00:00.000
19,2,2023-04-11 00:00:00.000
20,2,2023-04-19 00:00:00.000
15,2,2023-02-01 00:00:00.000
1 user_id course_id enrolled_at
2 1 1 2023-01-15 00:00:00.000
3 1 2 2023-02-01 00:00:00.000
4 1 4 2023-02-10 00:00:00.000
5 2 1 2023-01-20 00:00:00.000
6 2 3 2023-03-15 00:00:00.000
7 3 1 2023-02-25 00:00:00.000
8 3 2 2023-03-05 00:00:00.000
9 4 2 2023-03-10 00:00:00.000
10 4 3 2023-04-01 00:00:00.000
11 5 5 2023-03-20 00:00:00.000
12 6 1 2023-01-06 00:00:00.000
13 6 2 2023-01-10 00:00:00.000
14 6 3 2023-03-08 00:00:00.000
15 6 4 2023-02-05 00:00:00.000
16 7 1 2023-01-13 00:00:00.000
17 7 2 2023-02-01 00:00:00.000
18 7 3 2023-03-10 00:00:00.000
19 8 1 2023-01-22 00:00:00.000
20 8 2 2023-01-22 00:00:00.000
21 8 3 2023-01-22 00:00:00.000
22 9 1 2023-02-15 00:00:00.000
23 9 4 2023-02-12 00:00:00.000
24 10 1 2023-04-16 00:00:00.000
25 11 2 2023-04-21 00:00:00.000
26 12 1 2023-01-16 00:00:00.000
27 12 3 2023-03-10 00:00:00.000
28 13 2 2023-01-19 00:00:00.000
29 13 4 2023-02-20 00:00:00.000
30 14 1 2023-01-09 00:00:00.000
31 14 2 2023-01-09 00:00:00.000
32 14 3 2023-01-09 00:00:00.000
33 14 4 2023-02-01 00:00:00.000
34 14 5 2023-03-20 00:00:00.000
35 15 1 2023-01-11 00:00:00.000
36 15 3 2023-03-05 00:00:00.000
37 16 2 2023-02-16 00:00:00.000
38 16 4 2023-02-16 00:00:00.000
39 17 3 2023-03-22 00:00:00.000
40 17 5 2023-03-25 00:00:00.000
41 18 1 2023-04-02 00:00:00.000
42 18 4 2023-04-05 00:00:00.000
43 19 1 2023-04-11 00:00:00.000
44 19 2 2023-04-11 00:00:00.000
45 20 2 2023-04-19 00:00:00.000
46 15 2 2023-02-01 00:00:00.000

View File

@@ -0,0 +1,58 @@
user_id,lesson_id,course_id,viewed_at
13,12,4,2023-02-21 09:00:00.000
1,1,1,2023-01-16 10:00:00.000
1,2,1,2023-01-16 10:15:00.000
1,3,1,2023-01-17 09:00:00.000
1,4,1,2023-01-17 09:30:00.000
1,4,1,2023-01-17 11:00:00.000
1,4,1,2023-01-18 10:00:00.000
1,6,2,2023-02-02 14:00:00.000
1,12,4,2023-02-15 10:00:00.000
1,13,4,2023-02-15 10:30:00.000
2,1,1,2023-01-21 09:00:00.000
2,9,3,2023-03-16 10:00:00.000
2,10,3,2023-03-16 10:30:00.000
3,1,1,2023-02-26 11:00:00.000
3,2,1,2023-02-26 11:20:00.000
3,6,2,2023-03-06 12:00:00.000
4,6,2,2023-03-12 14:00:00.000
4,7,2,2023-03-13 09:00:00.000
4,9,3,2023-04-02 10:00:00.000
4,10,3,2023-04-03 10:00:00.000
5,15,5,2023-03-21 10:00:00.000
5,16,5,2023-03-22 11:00:00.000
6,1,1,2023-01-07 10:00:00.000
6,2,1,2023-01-07 10:15:00.000
6,3,1,2023-01-08 09:00:00.000
6,4,1,2023-01-08 09:30:00.000
6,5,1,2023-01-09 10:00:00.000
6,6,2,2023-01-11 14:00:00.000
6,7,2,2023-01-12 10:00:00.000
6,8,2,2023-01-13 11:00:00.000
6,9,3,2023-03-09 11:00:00.000
6,12,4,2023-02-06 09:00:00.000
6,13,4,2023-02-06 09:30:00.000
6,14,4,2023-02-07 10:00:00.000
7,1,1,2023-01-14 10:00:00.000
7,2,1,2023-01-14 10:20:00.000
7,3,1,2023-01-15 09:00:00.000
7,9,3,2023-03-11 14:00:00.000
7,10,3,2023-03-11 14:30:00.000
9,1,1,2023-02-16 11:00:00.000
9,12,4,2023-02-13 10:00:00.000
9,13,4,2023-02-13 10:30:00.000
12,1,1,2023-01-17 10:00:00.000
12,1,1,2023-04-10 11:00:00.000
12,2,1,2023-01-17 10:20:00.000
12,3,1,2023-04-10 11:30:00.000
12,9,3,2023-03-12 10:00:00.000
13,6,2,2023-01-20 14:00:00.000
13,7,2,2023-01-21 10:00:00.000
14,1,1,2023-01-09 08:00:00.000
14,2,1,2023-01-09 08:15:00.000
14,3,1,2023-01-10 10:00:00.000
14,4,1,2023-01-10 10:30:00.000
14,5,1,2023-01-11 09:00:00.000
14,6,2,2023-01-10 14:00:00.000
14,7,2,2023-01-11 10:00:00.000
14,8,2,2023-01-12 11:00:00.000
1 user_id lesson_id course_id viewed_at
2 13 12 4 2023-02-21 09:00:00.000
3 1 1 1 2023-01-16 10:00:00.000
4 1 2 1 2023-01-16 10:15:00.000
5 1 3 1 2023-01-17 09:00:00.000
6 1 4 1 2023-01-17 09:30:00.000
7 1 4 1 2023-01-17 11:00:00.000
8 1 4 1 2023-01-18 10:00:00.000
9 1 6 2 2023-02-02 14:00:00.000
10 1 12 4 2023-02-15 10:00:00.000
11 1 13 4 2023-02-15 10:30:00.000
12 2 1 1 2023-01-21 09:00:00.000
13 2 9 3 2023-03-16 10:00:00.000
14 2 10 3 2023-03-16 10:30:00.000
15 3 1 1 2023-02-26 11:00:00.000
16 3 2 1 2023-02-26 11:20:00.000
17 3 6 2 2023-03-06 12:00:00.000
18 4 6 2 2023-03-12 14:00:00.000
19 4 7 2 2023-03-13 09:00:00.000
20 4 9 3 2023-04-02 10:00:00.000
21 4 10 3 2023-04-03 10:00:00.000
22 5 15 5 2023-03-21 10:00:00.000
23 5 16 5 2023-03-22 11:00:00.000
24 6 1 1 2023-01-07 10:00:00.000
25 6 2 1 2023-01-07 10:15:00.000
26 6 3 1 2023-01-08 09:00:00.000
27 6 4 1 2023-01-08 09:30:00.000
28 6 5 1 2023-01-09 10:00:00.000
29 6 6 2 2023-01-11 14:00:00.000
30 6 7 2 2023-01-12 10:00:00.000
31 6 8 2 2023-01-13 11:00:00.000
32 6 9 3 2023-03-09 11:00:00.000
33 6 12 4 2023-02-06 09:00:00.000
34 6 13 4 2023-02-06 09:30:00.000
35 6 14 4 2023-02-07 10:00:00.000
36 7 1 1 2023-01-14 10:00:00.000
37 7 2 1 2023-01-14 10:20:00.000
38 7 3 1 2023-01-15 09:00:00.000
39 7 9 3 2023-03-11 14:00:00.000
40 7 10 3 2023-03-11 14:30:00.000
41 9 1 1 2023-02-16 11:00:00.000
42 9 12 4 2023-02-13 10:00:00.000
43 9 13 4 2023-02-13 10:30:00.000
44 12 1 1 2023-01-17 10:00:00.000
45 12 1 1 2023-04-10 11:00:00.000
46 12 2 1 2023-01-17 10:20:00.000
47 12 3 1 2023-04-10 11:30:00.000
48 12 9 3 2023-03-12 10:00:00.000
49 13 6 2 2023-01-20 14:00:00.000
50 13 7 2 2023-01-21 10:00:00.000
51 14 1 1 2023-01-09 08:00:00.000
52 14 2 1 2023-01-09 08:15:00.000
53 14 3 1 2023-01-10 10:00:00.000
54 14 4 1 2023-01-10 10:30:00.000
55 14 5 1 2023-01-11 09:00:00.000
56 14 6 2 2023-01-10 14:00:00.000
57 14 7 2 2023-01-11 10:00:00.000
58 14 8 2 2023-01-12 11:00:00.000

View File

@@ -0,0 +1,6 @@
id,title,category,created_at
1,SQL для начинающих,data,2023-01-01
2,Python для анализа данных,programming,2023-01-15
3,BI с нуля,business,2023-03-01
4,Excel для аналитиков,business,2023-02-01
5,Основы машинного обучения,data,2023-03-15
1 id title category created_at
2 1 SQL для начинающих data 2023-01-01
3 2 Python для анализа данных programming 2023-01-15
4 3 BI с нуля business 2023-03-01
5 4 Excel для аналитиков business 2023-02-01
6 5 Основы машинного обучения data 2023-03-15

View File

@@ -0,0 +1,46 @@
id,user_id,course_id,enrolled_at
3,2,1,2023-01-20
4,3,2,2023-03-05
5,4,3,2023-04-01
6,6,1,2023-01-06
7,6,2,2023-01-10
8,6,4,2023-02-05
9,7,1,2023-01-13
10,7,3,2023-03-10
11,8,1,2023-01-22
12,8,2,2023-01-22
13,8,3,2023-01-22
14,9,4,2023-02-12
15,10,1,2023-04-16
18,13,2,2023-01-19
19,13,4,2023-02-20
27,16,2,2023-02-16
28,16,4,2023-02-16
31,18,1,2023-04-02
32,19,1,2023-04-11
33,19,2,2023-04-11
37,2,3,2023-03-15
38,3,1,2023-02-25
39,4,2,2023-03-10
40,6,3,2023-03-08
41,7,2,2023-02-01
42,9,1,2023-02-15
45,18,4,2023-04-05
1,1,1,2023-01-15
2,1,2,2023-02-01
16,11,2,2023-04-21
17,12,1,2023-01-16
20,14,1,2023-01-09
21,14,2,2023-01-09
22,14,3,2023-01-09
23,14,4,2023-02-01
24,14,5,2023-03-20
25,15,1,2023-01-11
26,15,3,2023-03-05
29,17,3,2023-03-22
30,17,5,2023-03-25
34,20,2,2023-04-19
35,5,5,2023-03-20
36,1,4,2023-02-10
43,12,3,2023-03-10
44,15,2,2023-02-01
1 id user_id course_id enrolled_at
2 3 2 1 2023-01-20
3 4 3 2 2023-03-05
4 5 4 3 2023-04-01
5 6 6 1 2023-01-06
6 7 6 2 2023-01-10
7 8 6 4 2023-02-05
8 9 7 1 2023-01-13
9 10 7 3 2023-03-10
10 11 8 1 2023-01-22
11 12 8 2 2023-01-22
12 13 8 3 2023-01-22
13 14 9 4 2023-02-12
14 15 10 1 2023-04-16
15 18 13 2 2023-01-19
16 19 13 4 2023-02-20
17 27 16 2 2023-02-16
18 28 16 4 2023-02-16
19 31 18 1 2023-04-02
20 32 19 1 2023-04-11
21 33 19 2 2023-04-11
22 37 2 3 2023-03-15
23 38 3 1 2023-02-25
24 39 4 2 2023-03-10
25 40 6 3 2023-03-08
26 41 7 2 2023-02-01
27 42 9 1 2023-02-15
28 45 18 4 2023-04-05
29 1 1 1 2023-01-15
30 2 1 2 2023-02-01
31 16 11 2 2023-04-21
32 17 12 1 2023-01-16
33 20 14 1 2023-01-09
34 21 14 2 2023-01-09
35 22 14 3 2023-01-09
36 23 14 4 2023-02-01
37 24 14 5 2023-03-20
38 25 15 1 2023-01-11
39 26 15 3 2023-03-05
40 29 17 3 2023-03-22
41 30 17 5 2023-03-25
42 34 20 2 2023-04-19
43 35 5 5 2023-03-20
44 36 1 4 2023-02-10
45 43 12 3 2023-03-10
46 44 15 2 2023-02-01

View File

@@ -0,0 +1,58 @@
id,user_id,lesson_id,viewed_at
1,1,1,2023-01-16 10:00:00.000000
2,1,2,2023-01-16 10:15:00.000000
3,1,3,2023-01-17 09:00:00.000000
4,1,4,2023-01-17 09:30:00.000000
5,1,4,2023-01-17 11:00:00.000000
6,1,4,2023-01-18 10:00:00.000000
7,1,6,2023-02-02 14:00:00.000000
8,1,12,2023-02-15 10:00:00.000000
9,1,13,2023-02-15 10:30:00.000000
20,5,15,2023-03-21 10:00:00.000000
21,5,16,2023-03-22 11:00:00.000000
42,12,1,2023-01-17 10:00:00.000000
43,12,2,2023-01-17 10:20:00.000000
44,12,1,2023-04-10 11:00:00.000000
45,12,3,2023-04-10 11:30:00.000000
46,12,9,2023-03-12 10:00:00.000000
50,14,1,2023-01-09 08:00:00.000000
51,14,2,2023-01-09 08:15:00.000000
52,14,3,2023-01-10 10:00:00.000000
53,14,4,2023-01-10 10:30:00.000000
54,14,5,2023-01-11 09:00:00.000000
55,14,6,2023-01-10 14:00:00.000000
56,14,7,2023-01-11 10:00:00.000000
57,14,8,2023-01-12 11:00:00.000000
10,2,1,2023-01-21 09:00:00.000000
11,2,9,2023-03-16 10:00:00.000000
12,2,10,2023-03-16 10:30:00.000000
13,3,6,2023-03-06 12:00:00.000000
14,3,1,2023-02-26 11:00:00.000000
15,3,2,2023-02-26 11:20:00.000000
16,4,9,2023-04-02 10:00:00.000000
17,4,10,2023-04-03 10:00:00.000000
18,4,6,2023-03-12 14:00:00.000000
19,4,7,2023-03-13 09:00:00.000000
22,6,1,2023-01-07 10:00:00.000000
23,6,2,2023-01-07 10:15:00.000000
24,6,3,2023-01-08 09:00:00.000000
25,6,4,2023-01-08 09:30:00.000000
26,6,5,2023-01-09 10:00:00.000000
27,6,6,2023-01-11 14:00:00.000000
28,6,7,2023-01-12 10:00:00.000000
29,6,8,2023-01-13 11:00:00.000000
30,6,12,2023-02-06 09:00:00.000000
31,6,13,2023-02-06 09:30:00.000000
32,6,14,2023-02-07 10:00:00.000000
33,6,9,2023-03-09 11:00:00.000000
34,7,1,2023-01-14 10:00:00.000000
35,7,2,2023-01-14 10:20:00.000000
36,7,3,2023-01-15 09:00:00.000000
37,7,9,2023-03-11 14:00:00.000000
38,7,10,2023-03-11 14:30:00.000000
39,9,12,2023-02-13 10:00:00.000000
40,9,13,2023-02-13 10:30:00.000000
41,9,1,2023-02-16 11:00:00.000000
47,13,6,2023-01-20 14:00:00.000000
48,13,7,2023-01-21 10:00:00.000000
49,13,12,2023-02-21 09:00:00.000000
1 id user_id lesson_id viewed_at
2 1 1 1 2023-01-16 10:00:00.000000
3 2 1 2 2023-01-16 10:15:00.000000
4 3 1 3 2023-01-17 09:00:00.000000
5 4 1 4 2023-01-17 09:30:00.000000
6 5 1 4 2023-01-17 11:00:00.000000
7 6 1 4 2023-01-18 10:00:00.000000
8 7 1 6 2023-02-02 14:00:00.000000
9 8 1 12 2023-02-15 10:00:00.000000
10 9 1 13 2023-02-15 10:30:00.000000
11 20 5 15 2023-03-21 10:00:00.000000
12 21 5 16 2023-03-22 11:00:00.000000
13 42 12 1 2023-01-17 10:00:00.000000
14 43 12 2 2023-01-17 10:20:00.000000
15 44 12 1 2023-04-10 11:00:00.000000
16 45 12 3 2023-04-10 11:30:00.000000
17 46 12 9 2023-03-12 10:00:00.000000
18 50 14 1 2023-01-09 08:00:00.000000
19 51 14 2 2023-01-09 08:15:00.000000
20 52 14 3 2023-01-10 10:00:00.000000
21 53 14 4 2023-01-10 10:30:00.000000
22 54 14 5 2023-01-11 09:00:00.000000
23 55 14 6 2023-01-10 14:00:00.000000
24 56 14 7 2023-01-11 10:00:00.000000
25 57 14 8 2023-01-12 11:00:00.000000
26 10 2 1 2023-01-21 09:00:00.000000
27 11 2 9 2023-03-16 10:00:00.000000
28 12 2 10 2023-03-16 10:30:00.000000
29 13 3 6 2023-03-06 12:00:00.000000
30 14 3 1 2023-02-26 11:00:00.000000
31 15 3 2 2023-02-26 11:20:00.000000
32 16 4 9 2023-04-02 10:00:00.000000
33 17 4 10 2023-04-03 10:00:00.000000
34 18 4 6 2023-03-12 14:00:00.000000
35 19 4 7 2023-03-13 09:00:00.000000
36 22 6 1 2023-01-07 10:00:00.000000
37 23 6 2 2023-01-07 10:15:00.000000
38 24 6 3 2023-01-08 09:00:00.000000
39 25 6 4 2023-01-08 09:30:00.000000
40 26 6 5 2023-01-09 10:00:00.000000
41 27 6 6 2023-01-11 14:00:00.000000
42 28 6 7 2023-01-12 10:00:00.000000
43 29 6 8 2023-01-13 11:00:00.000000
44 30 6 12 2023-02-06 09:00:00.000000
45 31 6 13 2023-02-06 09:30:00.000000
46 32 6 14 2023-02-07 10:00:00.000000
47 33 6 9 2023-03-09 11:00:00.000000
48 34 7 1 2023-01-14 10:00:00.000000
49 35 7 2 2023-01-14 10:20:00.000000
50 36 7 3 2023-01-15 09:00:00.000000
51 37 7 9 2023-03-11 14:00:00.000000
52 38 7 10 2023-03-11 14:30:00.000000
53 39 9 12 2023-02-13 10:00:00.000000
54 40 9 13 2023-02-13 10:30:00.000000
55 41 9 1 2023-02-16 11:00:00.000000
56 47 13 6 2023-01-20 14:00:00.000000
57 48 13 7 2023-01-21 10:00:00.000000
58 49 13 12 2023-02-21 09:00:00.000000

View File

@@ -0,0 +1,19 @@
id,course_id,title,duration_min
1,1,SELECT и FROM,10
2,1,JOIN,15
3,1,WHERE и фильтрация,12
4,1,Агрегации и GROUP BY,18
5,1,Подзапросы,25
6,2,Pandas основы,20
7,2,NumPy,15
8,2,Визуализация данных,22
9,3,Основы BI,12
10,3,Метрики и дашборды,18
11,3,Power BI введение,20
12,4,Формулы в Excel,15
13,4,Сводные таблицы,18
14,4,Графики и диаграммы,14
15,5,Введение в ML,20
16,5,Линейная регрессия,30
17,5,Классификация,28
18,5,Кластеризация,25
1 id course_id title duration_min
2 1 1 SELECT и FROM 10
3 2 1 JOIN 15
4 3 1 WHERE и фильтрация 12
5 4 1 Агрегации и GROUP BY 18
6 5 1 Подзапросы 25
7 6 2 Pandas основы 20
8 7 2 NumPy 15
9 8 2 Визуализация данных 22
10 9 3 Основы BI 12
11 10 3 Метрики и дашборды 18
12 11 3 Power BI введение 20
13 12 4 Формулы в Excel 15
14 13 4 Сводные таблицы 18
15 14 4 Графики и диаграммы 14
16 15 5 Введение в ML 20
17 16 5 Линейная регрессия 30
18 17 5 Классификация 28
19 18 5 Кластеризация 25

View File

@@ -0,0 +1,21 @@
id,name,age,email,registration_date
1,Alice,25,alice@mail.com,2023-01-10
5,Ethan,35,ethan@gmail.com,2023-03-10
11,Kelly,23,kelly@gmail.com,2023-04-20
12,Leo,31,leo@mail.com,2023-01-15
14,Nina,28,nina@mail.com,2023-01-08
15,Oscar,33,oscar@gmail.com,2023-01-10
17,Quinn,24,quinn@gmail.com,2023-03-20
20,Tina,25,tina@mail.com,2023-04-18
2,Bob,30,bob@gmail.com,2023-02-05
3,Charlie,22,charlie@mail.com,2023-02-20
4,Diana,28,diana@mail.com,2023-03-01
6,Frank,29,frank@mail.com,2023-01-05
7,Grace,26,grace@gmail.com,2023-01-12
8,Henry,32,henry@mail.com,2023-01-20
9,Iris,24,iris@gmail.com,2023-02-10
10,Jack,27,jack@mail.com,2023-04-15
13,Mia,26,mia@gmail.com,2023-01-18
16,Paul,29,paul@mail.com,2023-02-15
18,Rita,27,rita@mail.com,2023-04-01
19,Sam,30,sam@gmail.com,2023-04-10
1 id name age email registration_date
2 1 Alice 25 alice@mail.com 2023-01-10
3 5 Ethan 35 ethan@gmail.com 2023-03-10
4 11 Kelly 23 kelly@gmail.com 2023-04-20
5 12 Leo 31 leo@mail.com 2023-01-15
6 14 Nina 28 nina@mail.com 2023-01-08
7 15 Oscar 33 oscar@gmail.com 2023-01-10
8 17 Quinn 24 quinn@gmail.com 2023-03-20
9 20 Tina 25 tina@mail.com 2023-04-18
10 2 Bob 30 bob@gmail.com 2023-02-05
11 3 Charlie 22 charlie@mail.com 2023-02-20
12 4 Diana 28 diana@mail.com 2023-03-01
13 6 Frank 29 frank@mail.com 2023-01-05
14 7 Grace 26 grace@gmail.com 2023-01-12
15 8 Henry 32 henry@mail.com 2023-01-20
16 9 Iris 24 iris@gmail.com 2023-02-10
17 10 Jack 27 jack@mail.com 2023-04-15
18 13 Mia 26 mia@gmail.com 2023-01-18
19 16 Paul 29 paul@mail.com 2023-02-15
20 18 Rita 27 rita@mail.com 2023-04-01
21 19 Sam 30 sam@gmail.com 2023-04-10

View File

@@ -0,0 +1,6 @@
id,title,category,created_at
1,SQL для начинающих,data,2023-01-01
2,Python для анализа данных,programming,2023-01-15
3,BI с нуля,business,2023-03-01
4,Excel для аналитиков,business,2023-02-01
5,Основы машинного обучения,data,2023-03-15
1 id title category created_at
2 1 SQL для начинающих data 2023-01-01
3 2 Python для анализа данных programming 2023-01-15
4 3 BI с нуля business 2023-03-01
5 4 Excel для аналитиков business 2023-02-01
6 5 Основы машинного обучения data 2023-03-15

View File

@@ -0,0 +1,46 @@
id,user_id,course_id,enrolled_at
1,1,1,2023-01-15
2,1,2,2023-02-01
3,2,1,2023-01-20
4,3,2,2023-03-05
5,4,3,2023-04-01
6,6,1,2023-01-06
7,6,2,2023-01-10
8,6,4,2023-02-05
9,7,1,2023-01-13
10,7,3,2023-03-10
11,8,1,2023-01-22
12,8,2,2023-01-22
13,8,3,2023-01-22
14,9,4,2023-02-12
15,10,1,2023-04-16
16,11,2,2023-04-21
17,12,1,2023-01-16
18,13,2,2023-01-19
19,13,4,2023-02-20
20,14,1,2023-01-09
21,14,2,2023-01-09
22,14,3,2023-01-09
23,14,4,2023-02-01
24,14,5,2023-03-20
25,15,1,2023-01-11
26,15,3,2023-03-05
27,16,2,2023-02-16
28,16,4,2023-02-16
29,17,3,2023-03-22
30,17,5,2023-03-25
31,18,1,2023-04-02
32,19,1,2023-04-11
33,19,2,2023-04-11
34,20,2,2023-04-19
35,5,5,2023-03-20
36,1,4,2023-02-10
37,2,3,2023-03-15
38,3,1,2023-02-25
39,4,2,2023-03-10
40,6,3,2023-03-08
41,7,2,2023-02-01
42,9,1,2023-02-15
43,12,3,2023-03-10
44,15,2,2023-02-01
45,18,4,2023-04-05
1 id user_id course_id enrolled_at
2 1 1 1 2023-01-15
3 2 1 2 2023-02-01
4 3 2 1 2023-01-20
5 4 3 2 2023-03-05
6 5 4 3 2023-04-01
7 6 6 1 2023-01-06
8 7 6 2 2023-01-10
9 8 6 4 2023-02-05
10 9 7 1 2023-01-13
11 10 7 3 2023-03-10
12 11 8 1 2023-01-22
13 12 8 2 2023-01-22
14 13 8 3 2023-01-22
15 14 9 4 2023-02-12
16 15 10 1 2023-04-16
17 16 11 2 2023-04-21
18 17 12 1 2023-01-16
19 18 13 2 2023-01-19
20 19 13 4 2023-02-20
21 20 14 1 2023-01-09
22 21 14 2 2023-01-09
23 22 14 3 2023-01-09
24 23 14 4 2023-02-01
25 24 14 5 2023-03-20
26 25 15 1 2023-01-11
27 26 15 3 2023-03-05
28 27 16 2 2023-02-16
29 28 16 4 2023-02-16
30 29 17 3 2023-03-22
31 30 17 5 2023-03-25
32 31 18 1 2023-04-02
33 32 19 1 2023-04-11
34 33 19 2 2023-04-11
35 34 20 2 2023-04-19
36 35 5 5 2023-03-20
37 36 1 4 2023-02-10
38 37 2 3 2023-03-15
39 38 3 1 2023-02-25
40 39 4 2 2023-03-10
41 40 6 3 2023-03-08
42 41 7 2 2023-02-01
43 42 9 1 2023-02-15
44 43 12 3 2023-03-10
45 44 15 2 2023-02-01
46 45 18 4 2023-04-05

View File

@@ -0,0 +1,58 @@
id,user_id,lesson_id,viewed_at
1,1,1,2023-01-16 10:00:00.000000
2,1,2,2023-01-16 10:15:00.000000
3,1,3,2023-01-17 09:00:00.000000
4,1,4,2023-01-17 09:30:00.000000
5,1,4,2023-01-17 11:00:00.000000
6,1,4,2023-01-18 10:00:00.000000
7,1,6,2023-02-02 14:00:00.000000
8,1,12,2023-02-15 10:00:00.000000
9,1,13,2023-02-15 10:30:00.000000
10,2,1,2023-01-21 09:00:00.000000
11,2,9,2023-03-16 10:00:00.000000
12,2,10,2023-03-16 10:30:00.000000
13,3,6,2023-03-06 12:00:00.000000
14,3,1,2023-02-26 11:00:00.000000
15,3,2,2023-02-26 11:20:00.000000
16,4,9,2023-04-02 10:00:00.000000
17,4,10,2023-04-03 10:00:00.000000
18,4,6,2023-03-12 14:00:00.000000
19,4,7,2023-03-13 09:00:00.000000
20,5,15,2023-03-21 10:00:00.000000
21,5,16,2023-03-22 11:00:00.000000
22,6,1,2023-01-07 10:00:00.000000
23,6,2,2023-01-07 10:15:00.000000
24,6,3,2023-01-08 09:00:00.000000
25,6,4,2023-01-08 09:30:00.000000
26,6,5,2023-01-09 10:00:00.000000
27,6,6,2023-01-11 14:00:00.000000
28,6,7,2023-01-12 10:00:00.000000
29,6,8,2023-01-13 11:00:00.000000
30,6,12,2023-02-06 09:00:00.000000
31,6,13,2023-02-06 09:30:00.000000
32,6,14,2023-02-07 10:00:00.000000
33,6,9,2023-03-09 11:00:00.000000
34,7,1,2023-01-14 10:00:00.000000
35,7,2,2023-01-14 10:20:00.000000
36,7,3,2023-01-15 09:00:00.000000
37,7,9,2023-03-11 14:00:00.000000
38,7,10,2023-03-11 14:30:00.000000
39,9,12,2023-02-13 10:00:00.000000
40,9,13,2023-02-13 10:30:00.000000
41,9,1,2023-02-16 11:00:00.000000
42,12,1,2023-01-17 10:00:00.000000
43,12,2,2023-01-17 10:20:00.000000
44,12,1,2023-04-10 11:00:00.000000
45,12,3,2023-04-10 11:30:00.000000
46,12,9,2023-03-12 10:00:00.000000
47,13,6,2023-01-20 14:00:00.000000
48,13,7,2023-01-21 10:00:00.000000
49,13,12,2023-02-21 09:00:00.000000
50,14,1,2023-01-09 08:00:00.000000
51,14,2,2023-01-09 08:15:00.000000
52,14,3,2023-01-10 10:00:00.000000
53,14,4,2023-01-10 10:30:00.000000
54,14,5,2023-01-11 09:00:00.000000
55,14,6,2023-01-10 14:00:00.000000
56,14,7,2023-01-11 10:00:00.000000
57,14,8,2023-01-12 11:00:00.000000
1 id user_id lesson_id viewed_at
2 1 1 1 2023-01-16 10:00:00.000000
3 2 1 2 2023-01-16 10:15:00.000000
4 3 1 3 2023-01-17 09:00:00.000000
5 4 1 4 2023-01-17 09:30:00.000000
6 5 1 4 2023-01-17 11:00:00.000000
7 6 1 4 2023-01-18 10:00:00.000000
8 7 1 6 2023-02-02 14:00:00.000000
9 8 1 12 2023-02-15 10:00:00.000000
10 9 1 13 2023-02-15 10:30:00.000000
11 10 2 1 2023-01-21 09:00:00.000000
12 11 2 9 2023-03-16 10:00:00.000000
13 12 2 10 2023-03-16 10:30:00.000000
14 13 3 6 2023-03-06 12:00:00.000000
15 14 3 1 2023-02-26 11:00:00.000000
16 15 3 2 2023-02-26 11:20:00.000000
17 16 4 9 2023-04-02 10:00:00.000000
18 17 4 10 2023-04-03 10:00:00.000000
19 18 4 6 2023-03-12 14:00:00.000000
20 19 4 7 2023-03-13 09:00:00.000000
21 20 5 15 2023-03-21 10:00:00.000000
22 21 5 16 2023-03-22 11:00:00.000000
23 22 6 1 2023-01-07 10:00:00.000000
24 23 6 2 2023-01-07 10:15:00.000000
25 24 6 3 2023-01-08 09:00:00.000000
26 25 6 4 2023-01-08 09:30:00.000000
27 26 6 5 2023-01-09 10:00:00.000000
28 27 6 6 2023-01-11 14:00:00.000000
29 28 6 7 2023-01-12 10:00:00.000000
30 29 6 8 2023-01-13 11:00:00.000000
31 30 6 12 2023-02-06 09:00:00.000000
32 31 6 13 2023-02-06 09:30:00.000000
33 32 6 14 2023-02-07 10:00:00.000000
34 33 6 9 2023-03-09 11:00:00.000000
35 34 7 1 2023-01-14 10:00:00.000000
36 35 7 2 2023-01-14 10:20:00.000000
37 36 7 3 2023-01-15 09:00:00.000000
38 37 7 9 2023-03-11 14:00:00.000000
39 38 7 10 2023-03-11 14:30:00.000000
40 39 9 12 2023-02-13 10:00:00.000000
41 40 9 13 2023-02-13 10:30:00.000000
42 41 9 1 2023-02-16 11:00:00.000000
43 42 12 1 2023-01-17 10:00:00.000000
44 43 12 2 2023-01-17 10:20:00.000000
45 44 12 1 2023-04-10 11:00:00.000000
46 45 12 3 2023-04-10 11:30:00.000000
47 46 12 9 2023-03-12 10:00:00.000000
48 47 13 6 2023-01-20 14:00:00.000000
49 48 13 7 2023-01-21 10:00:00.000000
50 49 13 12 2023-02-21 09:00:00.000000
51 50 14 1 2023-01-09 08:00:00.000000
52 51 14 2 2023-01-09 08:15:00.000000
53 52 14 3 2023-01-10 10:00:00.000000
54 53 14 4 2023-01-10 10:30:00.000000
55 54 14 5 2023-01-11 09:00:00.000000
56 55 14 6 2023-01-10 14:00:00.000000
57 56 14 7 2023-01-11 10:00:00.000000
58 57 14 8 2023-01-12 11:00:00.000000

View File

@@ -0,0 +1,19 @@
id,course_id,title,duration_min
1,1,SELECT и FROM,10
2,1,JOIN,15
3,1,WHERE и фильтрация,12
4,1,Агрегации и GROUP BY,18
5,1,Подзапросы,25
6,2,Pandas основы,20
7,2,NumPy,15
8,2,Визуализация данных,22
9,3,Основы BI,12
10,3,Метрики и дашборды,18
11,3,Power BI введение,20
12,4,Формулы в Excel,15
13,4,Сводные таблицы,18
14,4,Графики и диаграммы,14
15,5,Введение в ML,20
16,5,Линейная регрессия,30
17,5,Классификация,28
18,5,Кластеризация,25
1 id course_id title duration_min
2 1 1 SELECT и FROM 10
3 2 1 JOIN 15
4 3 1 WHERE и фильтрация 12
5 4 1 Агрегации и GROUP BY 18
6 5 1 Подзапросы 25
7 6 2 Pandas основы 20
8 7 2 NumPy 15
9 8 2 Визуализация данных 22
10 9 3 Основы BI 12
11 10 3 Метрики и дашборды 18
12 11 3 Power BI введение 20
13 12 4 Формулы в Excel 15
14 13 4 Сводные таблицы 18
15 14 4 Графики и диаграммы 14
16 15 5 Введение в ML 20
17 16 5 Линейная регрессия 30
18 17 5 Классификация 28
19 18 5 Кластеризация 25

View File

@@ -0,0 +1,21 @@
id,name,age,email,registration_date
1,Alice,25,alice@mail.com,2023-01-10
2,Bob,30,bob@gmail.com,2023-02-05
3,Charlie,22,charlie@mail.com,2023-02-20
4,Diana,28,diana@mail.com,2023-03-01
5,Ethan,35,ethan@gmail.com,2023-03-10
6,Frank,29,frank@mail.com,2023-01-05
7,Grace,26,grace@gmail.com,2023-01-12
8,Henry,32,henry@mail.com,2023-01-20
9,Iris,24,iris@gmail.com,2023-02-10
10,Jack,27,jack@mail.com,2023-04-15
11,Kelly,23,kelly@gmail.com,2023-04-20
12,Leo,31,leo@mail.com,2023-01-15
13,Mia,26,mia@gmail.com,2023-01-18
14,Nina,28,nina@mail.com,2023-01-08
15,Oscar,33,oscar@gmail.com,2023-01-10
16,Paul,29,paul@mail.com,2023-02-15
17,Quinn,24,quinn@gmail.com,2023-03-20
18,Rita,27,rita@mail.com,2023-04-01
19,Sam,30,sam@gmail.com,2023-04-10
20,Tina,25,tina@mail.com,2023-04-18
1 id name age email registration_date
2 1 Alice 25 alice@mail.com 2023-01-10
3 2 Bob 30 bob@gmail.com 2023-02-05
4 3 Charlie 22 charlie@mail.com 2023-02-20
5 4 Diana 28 diana@mail.com 2023-03-01
6 5 Ethan 35 ethan@gmail.com 2023-03-10
7 6 Frank 29 frank@mail.com 2023-01-05
8 7 Grace 26 grace@gmail.com 2023-01-12
9 8 Henry 32 henry@mail.com 2023-01-20
10 9 Iris 24 iris@gmail.com 2023-02-10
11 10 Jack 27 jack@mail.com 2023-04-15
12 11 Kelly 23 kelly@gmail.com 2023-04-20
13 12 Leo 31 leo@mail.com 2023-01-15
14 13 Mia 26 mia@gmail.com 2023-01-18
15 14 Nina 28 nina@mail.com 2023-01-08
16 15 Oscar 33 oscar@gmail.com 2023-01-10
17 16 Paul 29 paul@mail.com 2023-02-15
18 17 Quinn 24 quinn@gmail.com 2023-03-20
19 18 Rita 27 rita@mail.com 2023-04-01
20 19 Sam 30 sam@gmail.com 2023-04-10
21 20 Tina 25 tina@mail.com 2023-04-18