JPQL用于生成直方图

时间:2013-01-27 15:04:40

标签: java hibernate jpa jpql

我正在尝试形成一个查询来生成以下的直方图。

假设实体Animal,具有无限数量的标签。

dog.features = [blue, big, fury, nice]
cat.features = [white, big, fury, ugly]
bear.features = [white, big, fury, ugly]
other_bear.features = [white, big, fury, ugly]

想象一下,我想要生成猫和其他人类似特征计数的直方图。

首先,我们需要为所有有猫的夫妇提供类似功能的计数

 similar_features(cat, dog) = 2
 similar_features(cat, bear) = 4
 similar_features(cat, other_bear) = 4

然后,相似特征的直方图将是:

|0| = 0
|1| = 0
|2| = 1
|3| = 0
|4| = 2

我想用JPQL实现这一点 - 我这样开始:

 SELECT COUNT(DISTINCT feature1) cnt, COUNT(COUNT(DISTINCT feature1)) 
 FROM Animal a1, Animal a2 
 JOIN a1.features feature1 JOIN a2.features feature2 
 WHERE feature1 = feature2 AND i2.id = ?1 
 GROUP BY a1, cnt

这显然是错误的,但它显示了我想要实现的目标。这甚至可以用JPQL吗?

0 个答案:

没有答案