次のヒストグラムを生成するクエリを作成しようとしています。
タグの数に制限のない動物エンティティを想定します。
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]
cat などの類似した機能の数のヒストグラムを生成したいとします。
まず、猫とのすべてのカップルについて、同様の機能の数が必要です
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でも可能ですか?