在hive中2. 根据score.txt建立学生成绩表,字段包括姓名(name),score(得分)。统计学生成绩,假设成绩60以下为不及格,[60-70)为及格,[70-80)为良好,[80-100]为优秀,请按照如下格式统计不及格,及格,良好,优秀的人数分别为多少?
时间: 2024-12-13 13:17:53 浏览: 52
在Hive中,你可以通过创建外部表并使用SQL查询来完成这个任务。首先,你需要创建一个名为`student_scores`的表,其结构如下:
```sql
CREATE EXTERNAL TABLE student_scores (
name STRING,
score INT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
LOCATION 'path_to_your_score_txt_file/score.txt';
```
这里的`path_to_your_score_txt_file`需要替换为你实际的文件路径。
接下来,你可以使用CASE WHEN语句对成绩进行分类,并计算各分数段的人数:
```sql
SELECT
COUNT(CASE WHEN score < 60 THEN 1 END) AS '不及格人数',
COUNT(CASE WHEN score BETWEEN 60 AND 70 THEN 1 END) AS '及格人数',
COUNT(CASE WHEN score BETWEEN 70 AND 80 THEN 1 END) AS '良好人数',
COUNT(CASE WHEN score > 79 THEN 1 END) AS '优秀人数'
FROM
student_scores;
```
这将返回每个分数段对应的学生人数。记得在运行此查询前,确保数据已经导入到`student_scores`表中,并且`score`字段的数据已经被正确的解析为整数。
阅读全文
相关推荐



















