@Override @Deprecated public final Field<BigDecimal> sum() { return DSL.sum(numeric()); }
return distinct ? minDistinct(arg) : min(arg); case SUM: return distinct ? sumDistinct(arg) : sum(arg); case MEDIAN: return median(arg);
@Override @Deprecated public final Field<BigDecimal> sum() { return DSL.sum(numeric()); }
@Override @Deprecated public final WindowPartitionByStep<BigDecimal> sumOver() { return DSL.sum(numeric()).over(); }
@Override @Deprecated public final WindowPartitionByStep<BigDecimal> sumOver() { return DSL.sum(numeric()).over(); }
@Override public final void accept(Context<?> ctx) { switch (ctx.family()) { default: ctx.visit(field.cast(DECIMAL)) .sql(" / ") .visit(DSL.sum(field)); toSQLOverClause(ctx); break; } } }
@WithTimer public QueueMetrics metrics(UUID orgId, UUID prjId, Set<String> statuses) { return txResult(tx -> { SelectConditionStep<Record4<Integer, Integer, Integer, String>> q = tx.select( field("1", Integer.class).as("count_process"), when(V_PROCESS_QUEUE.ORG_ID.eq(orgId), 1).otherwise(0).as("count_per_org"), when(V_PROCESS_QUEUE.PROJECT_ID.eq(prjId), 1).otherwise(0).as("count_per_project"), V_PROCESS_QUEUE.CURRENT_STATUS.as("status")) .from(V_PROCESS_QUEUE) .where(V_PROCESS_QUEUE.CURRENT_STATUS.in(statuses)); List<Record4<BigDecimal, BigDecimal, BigDecimal, String>> result = tx.select( sum(q.field("count_process", Integer.class)), sum(q.field("count_per_org", Integer.class)), sum(q.field("count_per_project", Integer.class)), q.field("status", String.class)) .from(q) .groupBy(q.field("status", String.class)) .fetch(); Map<String, Integer> process = new HashMap<>(); Map<String, Integer> perOrg = new HashMap<>(); Map<String, Integer> perProject = new HashMap<>(); result.forEach(r -> { String status = r.value4(); process.put(status, getInt(r.value1())); perOrg.put(status, getInt(r.value2())); perProject.put(status, getInt(r.value3())); }); return new QueueMetrics(process, perOrg, perProject); }); }
SelectQuery select = db.createSelectFrom(Usage.TABLE, Usage.METRIC_FIELD, Usage.ACCOUNT_FIELD, sum(Usage.USAGE_FIELD), inline(new Timestamp(time_from)), inline(new Timestamp(time_to)), Usage.UNIT_FIELD, Usage.DATA_FIELD);
sum(when(a.STATUS.eq(RUNNING.name()), 1).otherwise(0)).as(RUNNING.name()), sum(when(a.STATUS.eq(CHANGED.name()), 1).otherwise(0)).as(CHANGED.name()), sum(when(a.STATUS.eq(FAILED.name()), 1).otherwise(0)).as(FAILED.name()), sum(when(a.STATUS.eq(OK.name()), 1).otherwise(0)).as(OK.name()), sum(when(a.STATUS.eq(SKIPPED.name()), 1).otherwise(0)).as(SKIPPED.name()), sum(when(a.STATUS.eq(UNREACHABLE.name()), 1).otherwise(0)).as(UNREACHABLE.name()), arrayAggDistinct(a.HOST_GROUP)) .from(a)
name("project_cost") .fields("project_pid", "total_cost") .as(select(project_info.field("project_pid", Integer.class), sum(monthly_cost)) .from(project_info) .groupBy(project_info.field("project_pid")) .with(project_info) .with(project_cost) .select(project_name, total_cost, company_name, sum(monthly_cost).as("company_cost")) .from(project_info) .join(project_cost).using(project_info.field("project_pid"))