2

标记表有 3 列:id(主键)、tagresource

我想选择与至少 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 回答