多くのカテゴリを割り当てることができる投稿があります。つまり、多対多の関係です。
各カテゴリにある (特定の基準に適合する) 投稿の数を数えて、結果を並べ替えたいと考えています。
私は持っている:
Select ( Select count(post.id)
From post
Join category as postcat
where postcat.id = category.id
and (post.deleted is null or post.deleted = false)
and ...
), category
From category
order by ????? DESC, category.name
カウント列で並べたい。しかし、エイリアスを宣言することはできません。私が追加したエイリアスは無視されます。次に、次のようなSQLエラーをスローします。
java.sql.SQLSyntaxErrorException: [Macromedia][SQLServer JDBC ドライバー][SQLServer]列名 'numPosts' が無効です。
これは私が試したものです:
...
and (post.deleted is null or post.deleted = false)
and ...
) as numPosts, category
From category
order by numPosts DESC, category.name
HQL ランタイム ログを確認しましたが、'as numPosts' がカウントに設定されていません。これを回避する方法がわかりません。