通过csv文件提供的数据库表内容:
links.csv的格式:
movies.csv格式,一个movie可以有多种风格(genres),通过|分隔:
ratings.csv:
用户给movie打得分:
tags.csv:movie的标签
练习一:
列出四张表的总记录数:
select 'links' as "table name", count(1) as "row count" from "MOVIELENS"."public.aa.movielens.hdb::data.LINKS"
union all
select 'movies' as "table name", count(1) as "row count" from "MOVIELENS"."public.aa.movielens.hdb::data.MOVIES"
union all
select 'ratings' as "table name", count(1) as "row count" from "MOVIELENS"."public.aa.movielens.hdb::data.RATINGS"
union all
select 'tags' as "table name", count(1) as "row count" from "MOVIELENS"."public.aa.movielens.hdb::data.TAGS";
执行结果:
练习2:计算总共9125部电影,一共包含多少艺术类别?
DO
BEGIN
DECLARE genreArray NVARCHAR(255) ARRAY;
DECLARE tmp NVARCHAR(255);
DECLARE idx INTEGER;
DECLARE sep NVARCHAR(1) := '|';
DECLARE CURSOR cur FOR SELECT DISTINCT "GENRES" FROM "MOVIELENS"."public.aa.movielens.hdb::data.MOVIES";
DECLARE genres NVARCHAR (255) := '';
idx := 1;
FOR cur_row AS cur() DO
SELECT cur_row."GENRES" INTO genres FROM DUMMY;
tmp := :genres;
WHILE LOCATE(:tmp,:sep) > 0 DO
genreArray[:idx] := SUBSTR_BEFORE(:tmp,:sep);
tmp := SUBSTR_AFTER(:tmp,:sep);
idx := :idx + 1;
END WHILE;
genreArray[:idx] := :tmp;
END FOR;
genreList = UNNEST(:genreArray) AS ("GENRE");
SELECT "GENRE" FROM :genreList GROUP BY "GENRE";
END;
执行结果,总共包含18种:
练习3:计算每种艺术类别总共包含多少部电影:
DO
BEGIN
DECLARE genreArray NVARCHAR(255) ARRAY;
DECLARE tmp NVARCHAR(255);
DECLARE idx INTEGER;
DECLARE sep NVARCHAR(1) := '|';
DECLARE CURSOR cur FOR SELECT DISTINCT "GENRES" FROM "MOVIELENS"."public.aa.movielens.hdb::data.MOVIES";
DECLARE genres NVARCHAR (255) := '';
idx := 1;
FOR cur_row AS cur() DO
SELECT cur_row."GENRES" INTO genres FROM DUMMY;
tmp := :genres;
WHILE LOCATE(:tmp,:sep) > 0 DO
genreArray[:idx] := SUBSTR_BEFORE(:tmp,:sep);
tmp := SUBSTR_AFTER(:tmp,:sep);
idx := :idx + 1;
END WHILE;
genreArray[:idx] := :tmp;
END FOR;
genreList = UNNEST(:genreArray) AS ("GENRE");
SELECT "GENRE", count(1) FROM :genreList GROUP BY "GENRE";
END;
练习4:列出每部电影包含的风格数目:
SELECT
"MOVIEID"
, "TITLE"
, OCCURRENCES_REGEXPR('[|]' IN GENRES) + 1 "GENRE_COUNT"
, "GENRES"
FROM "MOVIELENS"."public.aa.movielens.hdb::data.MOVIES"
ORDER BY "GENRE_COUNT" ASC;
练习5:罗列出每部电影的风格分布情况
SELECT
"GENRE_COUNT"
, COUNT(1)
FROM (
SELECT
OCCURRENCES_REGEXPR('[|]' IN "GENRES") + 1 "GENRE_COUNT"
FROM "MOVIELENS"."public.aa.movielens.hdb::data.MOVIES"
)
GROUP BY "GENRE_COUNT" ORDER BY "GENRE_COUNT";
比如至少拥有1个风格的电影,有2793部,2个风格的电影有3039部,等等。
练习6:计算movie的rating分布情况
SELECT DISTINCT
MIN("RATING_COUNT") OVER( ) AS "MIN",
MAX("RATING_COUNT") OVER( ) AS "MAX",
AVG("RATING_COUNT") OVER( ) AS "AVG",
SUM("RATING_COUNT") OVER( ) AS "SUM",
MEDIAN("RATING_COUNT") OVER( ) AS "MEDIAN",
STDDEV("RATING_COUNT") OVER( ) AS "STDDEV",
COUNT(*) OVER( ) AS "CATEGORY_COUNT"
FROM (
SELECT "MOVIEID", COUNT(1) as "RATING_COUNT"
FROM "MOVIELENS"."public.aa.movielens.hdb::data.RATINGS"
GROUP BY "MOVIEID"
)
GROUP BY "RATING_COUNT";
明细情况:
SELECT "RATING_COUNT", COUNT(1) as "MOVIE_COUNT"
FROM (
SELECT "MOVIEID", COUNT(1) as "RATING_COUNT"
FROM "MOVIELENS"."public.aa.movielens.hdb::data.RATINGS"
GROUP BY "MOVIEID"
)
GROUP BY "RATING_COUNT" ORDER BY "RATING_COUNT" asc;
比如有397部电影的用户投票数为5票
练习7:统计用户投票情况
SELECT "RATING_COUNT", COUNT(1) as "USER_COUNT"
FROM (
SELECT "USERID", COUNT(1) as "RATING_COUNT"
FROM "MOVIELENS"."public.aa.movielens.hdb::data.RATINGS"
GROUP BY "USERID"
)
GROUP BY "RATING_COUNT" ORDER BY 1 DESC;
有一位用户投了2391票,一位用户投了1868票:
练习8:统计用户投票得分情况
SELECT "RATING", COUNT(1) as "RATING_COUNT"
FROM "MOVIELENS"."public.aa.movielens.hdb::data.RATINGS"
GROUP BY "RATING" ORDER BY 1 DESC;
有15095份用户投票,打的分数是5分
相关推荐
SAP HANA Developer ...provided with the browser-based SAP HANA Web-based Workbench. It also describes the technical structure of applications that can be deployed to the XS classic run-time platform.
SAP HANA Cockpit是一款基于Web的管理工具,用于对SAP HANA系统进行管理和监控,以及日常维护。这款工具为SAP HANA数据库(资源)的管理和监控提供了工具,并通过SAP HANA数据库探索器提供了开发功能。你可以管理...
SQL参考手册是SAP HANA数据库的官方文档,它为数据库管理员和开发者提供了关于如何使用SQL来与SAP HANA数据库交互的详细信息。 首先,SQL参考手册涵盖了SQL的基本元素。SQL是一种标准化的编程语言,用于管理和操作...
SAP S/4HANA On-Premise和S4 HANA Cloud是SAP提供的两种不同部署方式的智能ERP解决方案,分别适用于不同需求的企业。S/4HANA On-Premise版本是一个基于SAP HANA内存数据库的ERP业务套件,允许企业在私有云或公有云上...
根据提供的信息,我们可以得知,SAP HANA SQLScript Guide 是针对 SAP HANA 数据库中 SQLScript 编程语言的官方指南。SAP HANA 是 SAP 公司推出的一款高性能的内存计算平台,它支持实时分析和应用处理。SQLScript 是...
在SAP HANA体系中,SQL语言的使用规则十分关键,它规定了如何在SAP HANA中执行数据的增加、删除、修改和查询操作。 在SAP HANA中,SQL语句的编写遵循一定的规则,包括标识符的使用、注释的书写方式、数据类型的确切...
1. **应用程序开发**:使用内置的开发工具,如ABAP Development Tools,可以创建、编辑和测试SAP HANA上的应用程序。 2. **数据建模**:通过图形化界面设计和修改数据模型,包括计算视图、多维数据模型(CDS视图)...
根据提供的文件信息,“SAP HANA HA360 - SAP HANA - Hands-on Lab(Col99).pdf”,我们可以推断出这份文档是关于SAP HANA的技术实践指南或者实训手册,编号为Col99。从文档的部分内容来看,虽然没有提供具体的文字...
在IT领域,SAP HANA作为一个高性能的数据处理平台,其SQL Script是进行数据处理、分析和应用程序开发的重要工具。本文将深入探讨SAP HANA SP3 SQL Script的关键知识点,包括其功能、应用以及如何有效利用它来提升...
这个“SAP-HANA-STUDIO-2.3.37”压缩包文件包含了该版本的SAP HANA Studio安装程序,用于在用户的计算机上部署和配置这款强大的工具。 SAP HANA,全称High-Performance Analytic Appliance,是一款内存计算平台,专...
SAP HANA数据库SQL参考手册是为SAP HANA平台上的SQL用户提供的全面指南,尤其适合SAP顾问、系统管理员和硬件合作伙伴等专业人士使用。该手册深入解析了在HANA环境中如何有效地运用SQL语言,涵盖了从基本语法到高级...
这两个标题实际上表达了相同的意思,即这是一份关于SAP HANA数据库中SQL语言使用的参考手册。 #### 标识符 在SAP HANA数据库中,标识符用于指代表、视图、列等数据库对象。默认情况下,标识符区分大小写,并且遵循...
这个" sap-hana-jdbc-2.4.59.jar "文件正是这样一个驱动包,它封装了与SAP HANA通信所需的所有必要代码,使得Java开发者能够方便地连接到HANA数据库,执行SQL查询,以及处理数据。 JDBC作为一个开放标准,定义了...
SAP HANA will soon celebrate its second birthday. Hard to believe, but this technology has been on the market for almost two years now. During this time, its use potential increased significantly: ...
标题《SAP HANA SQL Script》和描述《hana_dev_sqlscript_en.sql script 开发手册》表明,本文档是关于SAP HANA数据库中SQL Script的开发手册。SQL Script是SAP HANA提供的一个SQL语言的扩展集,用于在SAP HANA...
SAP HANA标准教材 HA150_EN_Col15。详细讲解SAP HANA SQL和SQL Script的语法和知识点。
标题和描述中提到的知识点有:SAP HANA内存使用分析、SAP技术顾问或 Basis相关人员、通过SQL语句进行分析。 在SAP HANA数据库中,内存是最重要的资源之一。内存的使用情况对于SAP HANA系统的性能有着直接影响。因此...
Thishandbookisintendedtocomplementtheinstructor-ledpresentationofthis course,andserveasasourceofreference. Itisnotsuitableforself-study
这部分详细介绍了一系列用于SAP HANA管理的工具,如SAP HANA cockpit、SAP Landscape Transformation (SLT)、SAP HANA Studio等,这些工具可以帮助管理员进行日常运维、故障排查和性能调优。 总之,《SAP HANA 管理...
在 SAP HANA SQL Script 中使用 BNF 来定义 SQL Script 的语法规则,这有助于确保 SQL Script 代码的一致性和可读性。 #### 三、SQL Script简介 SQL Script 是 SAP HANA 的过程化脚本语言,它结合了 SQL 和传统的...