挑战2:用户数据与课程数据的统计

介绍

在实验楼的数据库中有大量的用户学习数据,运营同学我们希望统计用户的学习数据与课程的学习人、学习时间的数据。

运营同学可以根据用户统计数据找出学习时间最高的用户,并给予发送奖励,同时可以根据课程的统计数据找出学习时间最高,学习人数最多的课程。

我们从实验楼的线上数据库中导出部分用户学习的记录,首先我们需要将提供好的数据文件导入数据库中:

wget http://labfile.oss.aliyuncs.com/courses/980/files/week7/shiyanlou-mysqlone.sql

然后将其导入数据库中:

mysql -u root -e "create database shiyanlou"
mysql -u root shiyanlou < shiyanlou-mysqlone.sql

紧接着我们需要创建一个视图,名为 user_all_study_time,通过该视图我们可以统计出有学习记录同学的总学习时间例如:

mysql> select * from user_all_study_time;
+---------+------------+----------------+
| user_id | user_name  | all_study_time |
+---------+------------+----------------+
|     679 | LOUef9c1c2 |              1 |
|     962 | LOUd8cc151 |              3 |
|     844 | LOU065c64d |              5 |
|     403 | LOUecf6efb |              6 |
|     616 | LOU486c4b9 |              7 |
.....
.....
+-----+------------+----------------+

该视图需求为:

  1. 视图名为 user_all_study_time
  2. 视图有三列:user_id(用户 id)、user_name(用户名)、all_study_time(学习总时间)

同时创建一个课程数据统计的视图,名为 course_statistics,通过该视图我们可以统计出学习人数最多与学习时间最长的课程,例如:

mysql> select * from course_statistics;
+-------------------------------------------------+------------+----------------+
| course_name                                     | user_count | all_study_time |
+-------------------------------------------------+------------+----------------+
| 由浅入深学网络                                  |         14 |            792 |
| Laravel 项目实战:仿新浪微博Web应用             |         12 |            649 |
| 动手实战学Docker (15个实验+54个视频)            |         13 |            633 |
| Java实现在线协作文档编辑                        |         10 |            622 |
| Spark 大数据动手实验                            |         10 |            559 |
......
......
+-------------------------------------------------+------------+----------------+

该视图需求为:

  1. 视图名为 course_statistics
  2. 视图有三列:course_name(课程的名字)、user_count(学习用户人数统计)、all_study_time(学习总时间)
  3. 以课程的学习时间降序排列

目标

  1. 创建视图 user_all_study_time 统计用户的总学习时间
  2. 创建视图 course_statistics 统计课程的数据

知识点

  1. Mysql 创建视图
  2. Mysql 联结
  3. Mysql 分组排序
  4. Mysql 函数

results matching ""

    No results matching ""