来自数据库行和表的原始数据不能为人类读者提供太多了解。 相反,如果我们对数据执行某种聚合,则人类更有可能看到数据模式
在展示给我们之前。 数据透视表是聚合的一种特定形式,我们可以在其中应用排序,求平均值或求和之类的操作,也可以对列值进行分组。
在本文中,我将展示如何在不编写SQL的情况下,可以用纯Java从数据库计算数据透视表。 您可以轻松地重用和修改本文中的示例,以满足您自己的特定需求。
在以下示例中,我使用了开源Speedment (它是Java Stream ORM)和MySQL的开源Sakila电影数据库内容。 Speedment适用于任何主要的关系数据库类型,例如MySQL,PostgreSQL,Oracle,MariaDB,Microsoft SQL Server,DB2,AS400等。
旋转
我将构造一个Map
的Actor
对象,并为每个Actor
,相应的List
电影,一个特殊的电影分级的Actor
出现在这里是为特定的枢轴如何进入一个例子。 Actor
可能看起来像口头上表示:
“约翰·多伊(John Doe)参加了9部评级为'PG-13'的电影和4部评级为'R'的电影”。
我们将计算数据库中所有参与者的枢轴值。 Sakila数据库具有此特定应用程序感兴趣的三个表:
1)包含所有影片以及影片评级的“影片”(例如“ PG-13”,“ R”等)。
2)包含(组成&#