3

以下のSQLを実行したい

select count(*) as myCount from user group by name;

私は同じことについて次の基準を思いついた

DetachedCriteria.ForClass(typeof(UserDTO))
    .setProjections(Projections.ProjectionList()
                        .Add(Projections.rowCount(),"myCount")
                        .Add(Projections.groupProperty("this.name"));

カウントと名前のペアとして結果が返されます。これからカウントを取得するにはどうすればよいですか。

4

2 に答える 2

0

列ごとのグループが 1 つしかない場合は、count distinct を使用できます。

HQL:

select count(distinct name) as myCount from user

基準:

DetachedCriteria.ForClass(typeof(UserDTO))
.setProjections(Projections.ProjectionList()
                    .Add(Projections.countDistinct("name"),"myCount"));
于 2014-07-22T07:26:31.930 に答える
0

Criteriaではできないと思いますが、HQLなら簡単です。これは SQL クエリとまったく同じ文字列ですが、テーブル/列の名前ではなくエンティティ/プロパティの名前が付いています。

于 2010-10-13T00:25:19.587 に答える