任务描述

本关任务:查询股票交易表 total 的前三十条数据。

相关知识

在之前的实训中,我们已经了解了如何管理表结构和数据,本关主要讲解如何运行查询。

SELECT ... FROM 语句

SELECT 是 SQL 的影射算子。FROM 子句标识了从哪个表、视图或嵌套查询中选择查询记录。

对于一个给定的记录,SELECT 指定了要保存的列以及输出函数需要调用的一个或多个列。 例如,对于一个用户表:

表名: t_user

列名 类型 备注
uid int 用户id
uname string 用户名
passwd string 密码
sex string 性别

我们现在要查询所有的用户名:


  1. select uname from t_user;

如果要查询多个列,那么列与列之间使用“,”即可。 例如查询所有的用户id和用户名:


  1. select uid,uname from t_user;

如果要查询该表所有的信息,只需在将列名处替换为“*”即可。


  1. select * from t_user;

limit

但是有时我们并不想要输出这个表的所有数据,而只是想要部分数据,例如前 10 条,该怎么办呢?

在 Hive 查询中要限制查询输出条数, 可以用 limit 关键词指定。

例如输出 t_user 表的前 10 条数据:


  1. select * from t_user limit 10;

正则表达式

我们可以使用正则表达式来选择我们想要的列。 例如从 shop 表中查询所有以 price 作为前缀的列:


  1. select `price.*` from shop;

编程要求

根据提示,在右侧编辑器 Begin-End 中补充代码,查询股票交易表 total 的前三十条数据。

表结构信息如下:

数据库:mydb 表名:total

col_name data_type comment
tradedate string 交易日期
tradetime string 交易时间
securityid string 股票ID
bidpx1 string 买入价
bidsize1 int 买入量
offerpx1 string 卖出价
bidsize2 int 卖出量

测试说明

点击评测后,平台会对你编写的 HiveQL 语句进行查询,若与预期输出一致,则算通关。

代码如下

---------- Begin ----------
-- 使用数据库 mydb

-- 查询股票交易表的前30条数据

use mydb;

select * from total limit 30;

---------- End ----------
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐