数据分析的宽表 数据分析所需掌握的视图用法

视图是数据库中一个非常简单的概念,写过SQL的人几乎大致了解视图。本文除了在回顾视图的本质及相关操作知识时,会重点阐述它蕴含的分层思想在数据分析工作中的作用。

数据分析的宽表 数据分析所需掌握的视图用法(1)

视图的本质与作用

视图是一个数据库中的虚拟表,它的本质是SQL语句的集合。它的数据来源于SQL语句查询中所使用的基本表,每次使用视图时会动态生成最新的结果数据。

它的作用主要体现在两个方面:

(1)方便查询

如果需要将一个SQL查询频繁作为子查询使用时,将其封装成视图可以简化代码方便查询,每次直接调用视图就可以了。

(2)方便权限管理

如果工作中需要给某个用户提供某张表的某几列数据的查询权限,但又不希望其看到其它数据时,可以通过建立相应数据的视图,然后把视图权限开放就可以了。

另外,虽然也可以通过视图去更新基本表中的数据,但一般不建议这么做。

数据分析的宽表 数据分析所需掌握的视图用法(2)

视图的操作

视图的操作包括创建视图、修改视图、删除视图、查看视图,这些操作只影响视图本身,不会影响对应的基本表。

(1)创建视图

create view view_name as select column_one,column_two from test_one where 1=1;

(2)修改视图

alter view view_name as select column_one from test_one where 1=1;

(3)删除视图

drop view view_name1,view_name2;

用户可以一次性删除一个或多个视图,前提是有该视图的删除权限

(4)查看视图

show table status like 'view_name';方法一 select * from information_schema.views where table_name='view_name';方法二

数据分析的宽表 数据分析所需掌握的视图用法(3)

视图思想

视图所运用的思想是分层思想,也可将其看作是在基本表和结果表中间建立了中间表。这种思想的本质是为了解决从基本表到结果表的复杂计算问题,通过建立分层,就可以比较简单地得到结果表。

数据分析的宽表 数据分析所需掌握的视图用法(4)

数据仓库就是完美运用分层思想的案例之一,神经网络中间的隐藏层也是对于分层思想的运用。在日常的数据分析工作中,分层思想也是一个非常重要的技巧。

举例来说,如果我们有用户登录明细的基本表,字段如下。

数据分析的宽表 数据分析所需掌握的视图用法(5)

运营人员是有每日追踪用户留存情况的需求的,如果直接通过这个基本表去计算留存率,尤其是在要连续追踪多天的留存率时,写出来的SQL会比较复杂。但如果建立了如下字段的中间表,再通过中间表去计算留存情况就会非常方便。

数据分析的宽表 数据分析所需掌握的视图用法(6)

对上表进行行转列就可以得到任意日期间隔任意天数的留存率了,而且,这个SQL语句非常简单。

结语

在数据分析工作,往往对于工具的使用并不是什么问题,经常碰到的问题反倒是如何能够便捷地得到我们想要的结果。分层思想就是对于实现结果的逻辑方法的一种辅助,它可以帮助我们把复杂的逻辑按步骤拆分成几个简单的逻辑,这些简单的逻辑不仅便于理解,也便于编程实现。

由此可见,在我们学习任何知识时,除了要聚焦于其知识点,也要将其思想发散于其它方面,做到活学活用、举一反三,如此才甚好!

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页