使用 RestHighLevelClient 执行 SQL 查询 - 车辆统计
以下代码示例演示如何使用 RestHighLevelClient 执行 SQL 查询,统计车辆信息,包括车牌首字母、小型车数量、大型车数量。
StringBuilder sql = new StringBuilder();
sql.append("SELECT substr(a.hphm,0,1) AS sf, ");
sql.append("nvl(sum(case when a.hpzl like '%小型%' then 1 else 0 end),0) AS xxsl, ");
sql.append("nvl(sum(case when a.hpzl like '%大型%' then 1 else 0 end),0) AS dxsl ");
sql.append("FROM video_passvehicle_push a ");
sql.append("WHERE 1=1 ");
if (StringUtils.isNotBlank(judgmentDTO.getGwdq())) {
String[] split = judgmentDTO.getGwdq().split(",");
for (int i = 0; i < split.length; i++) {
if (i == 0) {
sql.append("AND (a.hphm LIKE '%").append(split[i]).append("%' ");
} else {
sql.append("OR a.hphm LIKE '%").append(split[i]).append("%' ");
}
}
sql.append(") ");
}
if (StringUtils.isNotBlank(judgmentDTO.getKssj())) {
sql.append("AND a.gcsj >= to_date('").append(judgmentDTO.getKssj() + " 00:00:00").append("','yyyy-MM-dd hh24:mi:ss') ");
}
if (StringUtils.isNotBlank(judgmentDTO.getJssj())) {
sql.append("AND a.gcsj <= to_date('").append(judgmentDTO.getJssj() + " 23:59:59").append("','yyyy-MM-dd hh24:mi:ss') ");
}
//getAreaSql(sql,judgmentDTO);
sql.append("GROUP BY substr(a.hphm,0,1) ");
该 SQL 语句查询 video_passvehicle_push 表,统计以下信息:
sf: 车牌首字母xxsl: 小型车数量dxsl: 大型车数量
条件包括:
judgmentDTO.getGwdq: 车牌号模糊匹配judgmentDTO.getKssj: 开始时间judgmentDTO.getJssj: 结束时间
请根据实际情况修改代码中的表名、字段名、查询条件等。
原文地址: https://www.cveoy.top/t/topic/qlS8 著作权归作者所有。请勿转载和采集!