消除FROM子句中的子查询

时间:2013-02-18 16:33:41

标签: sql hql

标记表有3列: id (主键),标记资源

我想选择与至少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 子句中使用子查询的情况下执行相同的操作?

谢谢

1 个答案:

答案 0 :(得分:2)

要查找与超过2种不同资源相关联的标记,您可以使用

SELECT tag
FROM   tagging
GROUP  BY tag
HAVING count(DISTINCT resource) > 2;