1.在零售数据顾客表中转换顾客姓名为全大写。 2. 对订单总金额进行四舍五入,要求精度为小数点后两位。 3. 统计月度订单数量。 4. 根据商品价格将商品分级,0-100、0-200、200以上,并统计个档商品个数。 5. 在雇员信息表emp中,使用集合函数查询其中所有员工所在部门的名称及总数。 6. 把创建的自定义jar包加入hive,并执行mylower自定义函数。 7. 把顾客id和fname列传给shell中"bin/cat"并让它直接输出。 8. 用cat取出顾客表第一列
时间: 2024-03-20 13:41:24 浏览: 80
1. 在零售数据顾客表中转换顾客姓名为全大写。
假设我们有一个名为 `customers` 的表,其中包含 `name` 列,存储了顾客姓名。要将所有顾客姓名转换为全大写,可以使用如下 SQL 语句:
```sql
UPDATE customers SET name = UPPER(name);
```
执行该语句后,`customers` 表中的所有顾客姓名都将被转换为全大写。
2. 对订单总金额进行四舍五入,要求精度为小数点后两位。
假设我们有一个名为 `orders` 的表,其中包含 `amount` 列,存储了订单总金额。要将所有订单总金额进行四舍五入,并保留小数点后两位精度,可以使用如下 SQL 语句:
```sql
UPDATE orders SET amount = ROUND(amount, 2);
```
执行该语句后,`orders` 表中的所有订单总金额都将被四舍五入,并保留小数点后两位精度。
3. 统计月度订单数量。
假设我们有一个名为 `orders` 的表,其中包含 `order_date` 列,存储了订单日期。要统计每个月的订单数量,可以使用如下 SQL 语句:
```sql
SELECT DATE_FORMAT(order_date, '%Y-%m') AS month, COUNT(*) AS order_count
FROM orders
GROUP BY month;
```
执行该语句后,将会返回每个月的订单数量。
4. 根据商品价格将商品分级,0-100、0-200、200以上,并统计个档商品个数。
假设我们有一个名为 `products` 的表,其中包含 `price` 列,存储了商品价格。要将商品根据价格分为三个等级,并统计每个等级的商品个数,可以使用如下 SQL 语句:
```sql
SELECT
CASE
WHEN price <= 100 THEN '0-100'
WHEN price <= 200 THEN '100-200'
ELSE '200+'
END AS price_range,
COUNT(*) AS product_count
FROM products
GROUP BY price_range;
```
执行该语句后,将会返回每个等级的商品个数。
5. 在雇员信息表emp中,使用集合函数查询其中所有员工所在部门的名称及总数。
假设我们有一个名为 `emp` 的表,其中包含 `deptno` 列,存储了员工所在部门的编号。要查询每个部门的员工数量,可以使用如下 SQL 语句:
```sql
SELECT dname, COUNT(*) AS emp_count
FROM emp
JOIN dept ON emp.deptno = dept.deptno
GROUP BY dname;
```
执行该语句后,将会返回每个部门的员工总数。
6. 把创建的自定义jar包加入hive,并执行mylower自定义函数。
首先,需要将自定义的 Jar 包上传到 Hadoop 集群中,并在 Hive 中添加 Jar 包:
```sql
ADD JAR /path/to/myjar.jar;
```
然后,可以使用如下 SQL 语句创建自定义函数 `mylower`:
```sql
CREATE TEMPORARY FUNCTION mylower AS 'com.example.MyLower';
```
执行该语句后,可以在 Hive 中使用 `mylower` 函数。
7. 把顾客id和fname列传给shell中"bin/cat"并让它直接输出。
可以使用如下命令将 `customers` 表中的 `id` 和 `fname` 列输出到 shell 中:
```sh
hive -e "SELECT id, fname FROM customers" | cat
```
该命令将会输出 `customers` 表的 `id` 和 `fname` 列。
8. 用cat取出顾客表第一列
可以使用如下命令将 `customers` 表中的第一列输出到 shell 中:
```sh
hive -e "SELECT * FROM customers" | cut -f1
```
该命令将会输出 `customers` 表中的第一列。
阅读全文