我想寫一個jpql查詢來選擇最多評論的用戶。如果兩個用戶有相同數量的評論,我想同時選擇這兩個評論。JPQL與子查詢選擇最大數
我想這一點,是這樣的:
SELECT
c.user, COUNT(c.id) as commentCount
FROM
Comment c
WHERE
commentCount = (SELECT MAX(SIZE(user.comments)) FROM User user)
GROUP BY
c.user
這:
SELECT
c.user
FROM
Comment c
GROUP BY
c.user
HAVING
COUNT(c) = (SELECT MAX(SIZE(user.comments)) FROM User user)
這兩種方法都不適用。我需要在這裏做什麼?
當你說沒有工作,你的意思是隻選擇了一個用戶,當兩個用戶得到的評價一樣#? – Victor 2013-04-11 19:51:31
你可以試試: SELECT * FROM(SELECT c.user,COUNT(c.id)作爲commentCount FROM 註解C1)S1,其中s1.commentCount =(選擇最大(s2.coomentCount)從SELECT c.user ,COUNT(c.id)作爲commentCount FROM 評論c)s2 – Victor 2013-04-11 20:08:15
我總是得到一個「無法執行查詢」,因爲它以某種方式錯誤。因此,首先,我在「where子句」中得到「未知列」jobsCount,在第二個中,group by是無效的(當我添加HAVING部分時)。但我不知道我如何編寫工作版本。已經嘗試了許多不同的版本。 – 2013-04-11 20:09:19