标记表有 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 子句中使用子查询的情况下完成相同的操作?
谢谢
最佳答案
要查找与 2 个以上不同资源关联的标签,您可以使用
SELECT tag
FROM tagging
GROUP BY tag
HAVING count(DISTINCT resource) > 2;
关于sql - 消除 FROM 子句中的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14940954/