In JasperReports gibt es keine integrierte Medianberechnung.
Ein Median kann immer noch erhalten werden, indem man die Werte manuell in einer Liste sammelt und dann Apache Commons Math verwendet, um die Berechnung durchzuführen.
Siehe das folgende Beispiel. Der Bericht verwendet auch Apache Commons Lang, um ein Wrapper-Array in ein primitives Array zu konvertieren. Um den Bericht auszuführen, müssen Sie commons-math3-x.y.z.jar und commons-lang3-x.y.jar zum Klassenpfad hinzufügen.
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="FirstJasper" columnCount="1" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="30" bottomMargin="30">
<style name="Sans_Normal" isDefault="true" fontName="DejaVu Sans" fontSize="8"/>
<queryString>SELECT * FROM Orders</queryString>
<field name="Freight" class="java.lang.Double"/>
<variable name="FreightList" class="java.util.List">
<variableExpression>$V{FreightList}</variableExpression>
<initialValueExpression>new java.util.ArrayList()</initialValueExpression>
</variable>
<variable name="AddFreight" class="java.lang.Boolean">
<variableExpression>$V{FreightList}.add($F{Freight})</variableExpression>
</variable>
<title>
<band height="50">
<textField evaluationTime="Report">
<reportElement x="5" y="5" width="350" height="40"/>
<textFieldExpression><![CDATA["median is " + org.apache.commons.math3.stat.StatUtils.percentile(org.apache.commons.lang3.ArrayUtils.toPrimitive((Double[]) $V{FreightList}.toArray(new Double[$V{FreightList}.size()])), 50)]]></textFieldExpression>
</textField>
</band>
</title>
<detail>
<band height="13">
<textField pattern="0.00">
<reportElement x="5" y="0" width="350" height="11"/>
<textFieldExpression><![CDATA[$F{Freight}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
Ich glaube, der Durchschnitt ist die Summe aller Werte/Anzahl der Werte. Ich brauche den Durchschnitt nicht, ich brauche das 50. Perzentil (der Mittelweg von der 1. und letzten Nummer) des Feldes. – Matt
Der JasperReports Server hat einen Ausdruck für die Berechnung des Medianwert - Sie können versuchen, Quellcode zu betrachten –
[Median Berechnung] (http://community.jaspersoft.com/questions/956516/median-calculation) - Post auf Jaspersoft Community –