如何在同一个SQL查询中获取总计数和带条件的计数?

问题描述 投票:0回答:1

我有一张这样的桌子:

id 价值
0001 0
002 100

我想做一个这样的桌子:

总计数 失败计数 通过率
2 1 0.5

我可以知道如何在一个 Hive SQL 查询中编写吗?谢谢。 通过率是失败计数/总计数。

我尝试使用

WHERE LENGTH(id) = 3
,但它返回 0 作为我的计数。 这是我的 sql 查询:
选择 COUNT(*) 作为 Total_count, COUNT( CASE WHEN LENGTH(id) = 3 AND (值是 NULL 或值 <= 0) THEN 1 ELSE NULL END) as fail_count FROM my_table

这是我的 sql 查询的输出: |总数 |失败计数 | | ------------- | ----------- | | 2 | 0 |

sql hive
1个回答
0
投票

像这样使用案例表达式+聚合:

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
   
© www.soinside.com 2019 - 2024. All rights reserved.