数据库查询选择所有列,包括按“分组依据”的每条记录的计数
Posted
技术标签:
【中文标题】数据库查询选择所有列,包括按“分组依据”的每条记录的计数【英文标题】:Database query select all columns including count with every record by 'group by' 【发布时间】:2018-03-22 12:34:10 【问题描述】:使用 Criteria 或 HQL(Hibernate Query Language),选择所有列。 Grouping by 选定列的任意一列,并为我们使用 group by 的每条记录选择 count。
示例 SQL 查询例如:select *,count(1) from users group by name
【问题讨论】:
【参考方案1】:您是否尝试过运行您的 SQL?你不能运行这个查询吧?
select *,count(1) from users group by name
你会收到一些错误,例如:
Column 'some_column_name' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
你可以这样查询:
select name, count(name) from users group by name
在这种情况下,您可以在标准中使用投影来计算分组依据,例如:
criteria.setProjection(Projections.projectionList()
.add(Projections.groupProperty("name"))
.add(Projections.count("name")));
【讨论】:
以上是关于数据库查询选择所有列,包括按“分组依据”的每条记录的计数的主要内容,如果未能解决你的问题,请参考以下文章