2

タグ付けテーブルには、 id (主キー)、tag、およびresourceの 3 つの列があります。

少なくとも 3 つのリソースに関連付けられているタグを選択したいと考えています。リソースは同じタグに複数回関連付けることができるため、単一のGROUP BYでは不十分です。

私の現在のSQLクエリは次のとおりです。

SELECT tag FROM
(SELECT resource, tag FROM tagging GROUP BY resource, tag) AS tagging
GROUP BY tag HAVING count(*) > 2;

このリクエストを HQL に変換する必要がありますが、HQL はFROM句内のサブクエリを受け入れません。

サブクエリを使用せずに、またはWHERE句でサブクエリを使用して同じことを行う (高速) 方法はありますか?

ありがとうございました

4

1 に答える 1

2

2 つ以上の異なるリソースに関連付けられているタグを見つけるには、使用できる

SELECT tag
FROM   tagging
GROUP  BY tag
HAVING count(DISTINCT resource) > 2; 
于 2013-02-18T16:35:26.920 に答える