Kullanıcıya en çok yorumu içeren bir jpql sorgu yazmaya çalışıyorum. İki kullanıcının aynı sayıda yorumu varsa, ikisini de seçmek istiyorum.JPQL alt sorgu ile maksimum sayı seçmek için
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
ve bu:
SELECT
c.user
FROM
Comment c
GROUP BY
c.user
HAVING
COUNT(c) = (SELECT MAX(SIZE(user.comments)) FROM User user)
İki yaklaşım çalışır
Ben böyle bir şey denedim. Burada ne yapmam gerekiyor?
, iki kullanıcıları yorumların aynı # varken sadece bir kullanıcıyı seçilen demek: Burada – Victor
denemek Can: select * s1 nerede ( Yorum c DAN commentCount olarak c.user, COUNT (c.id) SEÇ) den s1.commentCount = (seçmek max (s2.coomentCount) SELECT'in dan c.user , COUNT (c.id) olarak yorumCount FROM Yorum c) s2 – Victor
Her zaman bir "yanlış sorgulama çünkü" sorgu yürütemedi "alıyorum. Yani ilk etapta "Bilinmeyen sütun" jobsCount "cümlede nerede" ve ikinci grupta ise (HAVING kısmını eklediğimde) geçersiz. Ama çalışan bir versiyonu nasıl yazdığımı bilmiyorum. Zaten çok farklı versiyonları denedim. –