以下代码示例演示如何使用 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: 结束时间

请根据实际情况修改代码中的表名、字段名、查询条件等。

使用 RestHighLevelClient 执行 SQL 查询 - 车辆统计

原文地址: https://www.cveoy.top/t/topic/qlS8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录