我需要一个相对简单的查询,但是JPA使其很难创建。
SQL变量如下所示:
SELECT COUNT(DISTINCT OrderID) AS DistinctOrders FROM Orders WHERE CustomerID=7;
[编辑:OrderID不是主键。表格中可以有更多等于的OrderId]
我需要设置CustomerID
一个传递给我的方法的变量。
我找到了文档,CriteriaQuery
distinct()
但似乎无法将它们全部包装在一起。
这是我到目前为止的内容:
CriteriaBuilder cb = this.em.getCriteriaBuilder();
CriteriaQuery<Order> c = cb.createQuery( Order.class );
Root<Order> order = c.from( Order.class );
Path<String> customerID = order.get( "customerID" );
c.where( cb.equal( customerID, theId ) );
CriteriaBuilder cb = this.em.getCriteriaBuilder();
CriteriaQuery<Long> c = cb.createQuery(Long.class);//the query returns a long, and not Orders
Root<Order> order = c.from( Order.class );
//c.select(cb.countDistinct(order));//and this is the code you were looking for
c.select(cb.countDistinct(order.get("orderID")));//for counting distinct fields other than the primary key
Path<String> customerID = order.get( "customerID" );
c.where( cb.equal( customerID, theId ) );
问题内容: 我正在尝试从以下查询中获取行数。我只得到行计数为1,但有35条记录。您能否让我知道如何从内部查询中获取计数? 谢谢 问题答案: 您缺少FROM,需要为子查询指定别名。
问题内容: 我有一张包含所有美国邮政编码的表格。每行包含邮政编码的城市和州名称。我正在尝试获取在多个州显示的城市列表。如果在同一座城市中没有X个邮政编码,这将不是问题。 所以基本上,我只想将一个州的城市计数为1,而不是将城市/州计数为7次,因为该城市/州中有2个以上的邮政编码… 我不太确定该怎么做。我知道我需要使用count,但是如何告诉mysql仅将给定的城市/州组合计数为1? 问题答案: SE
Mine当前使用的是application.properties文件中包含: 提前致谢
本文向大家介绍MySQL选择按值计数?,包括了MySQL选择按值计数?的使用技巧和注意事项,需要的朋友参考一下 您可以为此使用功能。让我们首先创建一个演示表 使用insert命令在表中插入一些记录。查询如下- 使用select语句显示表中的所有记录。查询如下- 以下是输出 这是选择按值计数的查询 以下是输出
我有以下JPA实体结构。 我想写一个JPA查询,它将返回给定parent_id的PARENT_NAME和所有子级的计数。 t我能想到的唯一解决办法是加入并编写一个复杂的条件查询。 我想不出使用简单的JPA查询获得结果的方法。 有更简单的方法吗?
但是如果页面没有传递任何内容,那么它将选择ALL。我不希望这种事发生。我知道mysql命令行有一个名为--select_limit的选项,那么我如何在全局范围内配置它来限制选择计数呢?例如在应用上。性质