我陷入了根据查询结果得到的总计数。
JPAQuery jpaQuery = new JPAQuery(entityManager);
jpaQuery.from(QMessageSend.messageSend)
.where(predicate)
.groupBy(QMessageSend.messageSend.messageId).count();
这是我目前的代码 并且此代码返回每个组的计数。
SELECT count(*)
FROM MESSAGE_SEND ms
GROUP BY ms.MESSAGE_ID
但我希望通过查询结果得到分组总数。 喜欢下面sql的结果
SELECT count(*)
FROM (
SELECT *
FROM MESSAGE_SEND ms
GROUP BY ms.MESSAGE_ID
) msc
我应该做什么?
MESSAGE_ID不是主键。 和JPAQuery的独特方法不支持选择特定列。 (没有参数)
答案 0 :(得分:0)
我想你想要COUNT(DISTINCT)
:
SELECT COUNT(DISTINCT s.MESSAGE_ID)
FROM MESSAGE_SEND ms;
如果MESSAGE_ID
是表格中的主键,则COUNT(*)
就足够了。