2013-02-18 97 views
2

的標籤表有3列:ID(主鍵),標籤,和資源消除在子查詢FROM子句

我想選擇與至少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子句中的子查詢?

謝謝

+0

您的文字說:「至少2」當前的查詢是'> 2'。這是什麼? – 2013-02-18 16:38:00

+0

你說得對,我糾正了它,儘管它並不重要。 – eskaev 2013-02-18 16:52:18

回答

2

要查找與2個以上的不同資源相關的標籤,你可以使用

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

謝謝你,那太棒了。如果我只想計算至少有3次出現標籤的資源(通過在子查詢中添加HAVING count(*)> 2)? – eskaev 2013-02-18 16:49:43