根据某字段分组,获取当前数据成功或失败各自的统计数
Posted 古兰精
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据某字段分组,获取当前数据成功或失败各自的统计数相关的知识,希望对你有一定的参考价值。
1、单独获取失败或成功的数据,并根据areaCode分组很好写:
SELECT p2.areaCode,COUNT(1) FROM vrv_paw_rulestatus p2 WHERE executeResult=1 GROUP BY p2.areaCode
2、如果要根据areaCode分组获取失败的和成功的统计,在一条数据里,就需要一定的技巧在里面:
SELECT a.code,
(SELECT COUNT(1) FROM vrv_paw_rulestatus p2 WHERE executeResult=1 and p2.areaCode = p.areaCode ) AS count_0,
(SELECT COUNT(1) FROM vrv_paw_rulestatus p2 WHERE executeResult=0 and p2.areaCode = p.areaCode ) AS count_1
FROM vrv_paw_area a LEFT JOIN vrv_paw_rulestatus p ON p.areaCode=a.code
where 1=1
GROUP BY a.code
public List<Object[]> queryBaseLineGroup(String areaCode, String startIP, String endIP) {
StringBuffer hql = new StringBuffer("SELECT a.code,"
+ "(SELECT COUNT(1) FROM vrv_paw_rulestatus p2 WHERE executeResult=1 and p2.areaCode = p.areaCode ) AS count_0 "
+ "FROM vrv_paw_area a LEFT JOIN vrv_paw_rulestatus p ON p.areaCode=a.code where 1=1 ");
if (StringUtils.isNotBlank(areaCode)) {
hql.append(" AND a.code =\'"+areaCode+"\'");
}
hql.append("GROUP BY a.code ");
List<Object[]> list = getSession().createSQLQuery(hql.toString()).list();
return list;
}
以上是关于根据某字段分组,获取当前数据成功或失败各自的统计数的主要内容,如果未能解决你的问题,请参考以下文章
golang实现es根据某字段分组,统计每组某一字段的数量,过滤空值并去重
golang实现es根据某字段分组,统计每组某一字段的数量,过滤空值并去重