If I have a PlayingCard object which relates to 52 entries in the database (for the 52 standard playing cards), and I want to write a method to return a list of the highest value card in each of the four suits. I can write an MS-SQL query to give me these:
Code:
select PlayingCard.*
from PlayingCard
join (
select CardSuit,
max(CardValue) as 'CardValue'
from PlayingCard
group by CardSuit
) as _T
on _T.CardSuit = PlayingCard.CardSuit
and _T.CardValue = PlayingCard.CardValue
How could I write such a query in HQL? I need (the equivalent of) the nested select to return the highest value for each suit, but I need to return all the information about the card (more than the "group by" alone can give me).
I would expect the output to be four PlayingCard objects: the Ace for each suit.