hive 如何在同一个SQL查询中获得总计数和条件计数?

fxnxkyjh  于 7个月前  发布在  Hive
关注(0)|答案(1)|浏览(84)

我有一张这样的table:
| ID|值|
| --|--|
| 0001 | 0 |
| 002 | 100 |
我想做一张这样的table:
| 总计数|故障计数|合格率|
| --|--|--|
| 2 | 1 |0.5|
我可以知道如何写在一个HiveSQL查询?谢谢。
通过率是fail_count/total_count。
我尝试使用WHERE LENGTH(id) = 3,但它返回0作为计数。
下面是我的SQL查询:

SELECT 
    COUNT(*) AS total_count, 
    COUNT(CASE WHEN LENGTH(id) = 3 AND (value IS NULL OR value <= 0) THEN 1 ELSE NULL END) AS fail_count 
FROM my_table

字符串
这是我的SQL查询的输出:
| 总计数|故障计数|
| --|--|
| 2 | 0 |

e5nszbig

e5nszbig1#

用例表达式+聚合如下所示:

select count(*) as total_count, 
       count(case when LENGTH(id) = 3 then 1 else null end) as id_length_3,
       sum(value)/count(*)/100 as pass_rate
   from mytable

字符串

相关问题