Map < Integer, Map < String, Double > > summary = new HashMap<>();
for (Order order : orders) {
	int year = order.orderDate.getYear();
	String sellerId = order.sellerId;
	double amount = order.amount;
	Map < String, Double> salesMap = summary.get(year);
	if (salesMap == null) {
		salesMap = new HashMap<>();
		summary.put(year, salesMap);
	}
	Double totalAmount = salesMap.get(sellerId);
	if (totalAmount == null) {
		totalAmount = 0.0;
	}
	salesMap.put(sellerId, totalAmount + amount);
}
for (Map.Entry < Integer, Map < String, Double > > entry : summary.entrySet()) {
	int year = entry.getKey();
	Map < String, Double> salesMap = entry.getValue();
	System.out.println("Year: " + year);
	for (Map.Entry < String, Double> salesEntry : salesMap.entrySet()) {
		String sellerId = salesEntry.getKey();
		double totalAmount = salesEntry.getValue();
		System.out.println("  Seller ID: " + sellerId + ", Total Amount: " + totalAmount);
	}
}
					SELECT year(orderdate),sellerid,sum(amount) FROM orders GROUP BY year(orderDate),sellerid
 Map < Integer, Map < String, Double > > summary = orders.stream()
		.collect(Collectors.groupingBy(
				order -> order.orderDate.getYear(),
				Collectors.groupingBy(
						order -> order.sellerId,
						Collectors.summingDouble(order -> order.amount)
				)
		));
summary.forEach((year, salesMap) -> {
	System.out.println("Year: " + year);
	salesMap.forEach((sellerId, totalAmount) -> {
		System.out.println("  Seller ID: " + sellerId + ", Total Amount: " + totalAmount);
	});
});
					val summary = orders
	.groupBy { it.orderDate.year }
	.mapValues { yearGroup ->
		yearGroup.value
			.groupBy { it.sellerId }
			.mapValues { sellerGroup ->
				sellerGroup.value.sumOf { it.amount }
			}
	}
summary.forEach { (year, salesMap) ->
	println("Year: $year")
	salesMap.forEach { (sellerId, totalAmount) ->
		println("  Seller ID: $sellerId, Total Amount: $totalAmount")
	}
}
					val summary = orders
	.groupBy(order => order.orderDate.getYear)
	.mapValues(yearGroup =>
		yearGroup
			.groupBy(_.sellerId)
			.mapValues(sellerGroup => sellerGroup.map(_.amount).sum)
)
summary.foreach { case (year, salesMap) =>
	println(s"Year: $year")
	salesMap.foreach { case (sellerId, totalAmount) =>
		println(s"  Seller ID: $sellerId, Total Amount: $totalAmount")
	}
}
					
				| SPL | Orders.groups(year(orderdate),sellerid;sum(amount)) | 
| SQL | SELECT year(orderdate),sellerid,sum(amount) FROM orders GROUP BY year(orderDate),sellerid | 
SELECT MAX(ContinuousDays) FROM (SELECT COUNT(*) ContinuousDays FROM (SELECT SUM(UpDownTag) OVER ( ORDER BY TradeDate) NoRisingDays FROM (SELECT TradeDate, CASE WHEN price>LAG(price) OVER ( ORDER BY TradeDate) THEN 0 ELSE 1 END UpDownTag FROM Stock ) ) GROUP BY NoRisingDays )
| A | |
| 1 | =Stock.sort(tradeDate).group@i(price < price[-1]).max(~.len()) | 
Class.forName("com.esproc.jdbc.InternalDriver");
con= DriverManager.getConnection("jdbc:esproc:local://");
st =con.prepareCall("call SplScript(?)");
st.setObject(1, "A");
st.execute();
ResultSet rs = st.getResultSet();
ResultSetMetaData rsmd = rs.getMetaData();
						标准JDBC执行/调用SPL脚本