哪个部门的项目总数大于整个项目的40%

20jt8wwn  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(487)

我在hive数据库中有一个hr表,有不同的列,其中两个是department和number of theu projects。我需要查询的是“哪个部门的项目总数大于总项目数的10%”
我编写了如下代码:

  1. SELECT department,
  2. SUM(Number_Of_projects) as total_projects_dep
  3. FROM Hr
  4. GROUP BY department
  5. HAVING SUM(Number_Of_projects) > (SELECT CAST(0.1*SUM(Number_Of_projects)AS INT) FROM hr);

配置单元引发以下错误:
失败:parseexception行1:126无法识别表达式规范中“select”“cast”“(”“)附近的输入
我在mysql中执行了相同的查询,它工作正常,结果正确。而配置单元在查询之间不接受大于符号。
有人能指导我如何修改上面的查询以在hive中工作吗。

kx7yvsdv

kx7yvsdv1#

使用分析功能:

  1. SELECT department, total_projects_dep
  2. FROM
  3. (
  4. SELECT department,
  5. SUM(Number_Of_projects) over(partition by department) as total_projects_dep,
  6. SUM(Number_Of_projects) over() as total_projects
  7. FROM Hr
  8. )s
  9. WHERE total_projects_dep > CAST(0.1*total_projects AS INT)
  10. GROUP BY department, total_projects_dep --this can be removed if there is only one record per department

;

相关问题