千家信息网

如何使用SAP HANA Web-based Development工具进行SQLScript练习

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下如何使用SAP HANA Web-based Development工具进行SQLScript练习,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!通过csv文件提供的
千家信息网最后更新 2026年11月01日如何使用SAP HANA Web-based Development工具进行SQLScript练习

小编给大家分享一下如何使用SAP HANA Web-based Development工具进行SQLScript练习,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

通过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 Web-based Development工具进行SQLScript练习"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

用户 电影 情况 风格 投票 工具 得分 格式 篇文章 类别 结果 艺术 统计 明细 内容 分数 多种 完了 数据 数据库 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云之行互联网科技 中国 科技 互联网 互联网科技公司怎么样 嘟嘟瓜互联网科技 互联网科技媒体 远拓互联网科技 互联网科技创新企业排名 互联网巨头投资的硬核科技 山东吉时兔互联网科技有限公司 深圳前海聚择互联网科技有限公司 恒银科技与互联网金融 互联网科技商业 亳州好赞互联网科技有限公司 天津腾达互联网科技有限公司 工业互联网等科技实现智能化赋能 互联网时代的科技公司 江苏苏星互联网科技有限公司 半导体行业属于互联网高科技类吗 东营紫格互联网科技 广东鹅鹅鹅互联网科技有限公司 广州大一互联网络科技有限公司 金融科技 互联网金融 互联网女皇 腾讯科技 佰商互联网科技有限公司 互联网科技大会案例 老年人脱离互联网科技的作文 互联网企业和科技型企业 北京市互联网新科技 本届互联网大会上的黑科技 珠海东科互联网科技有限公司
0