HQL中的分组和计数查询

时间:2013-02-22 09:31:37

标签: hql

我有HQL查询让我头疼,我希望有一个友好的HQL向导可以提供帮助。

我想我正在尝试做一些非常简单但却无法理解的事情。

我想对一些数据进行分组和计数以将其呈现在表格中,并认为我需要某种嵌套查询,但无法弄清楚如何做到这一点。

基本上我有一个表(客户端),它与其他用作查找(clienttype)和(clientsex)的表有关系。关系是1米。我想按类型对客户进行分组,然后有一个列计数男性,另一个计算女性。 e.g

Type    | males | females

type A  | x     | x

type B  | x     | x

我可以进行查询只是为了获得男性或女性,但无法弄清楚如何获得第二列。

希望这是有道理的,有可能并且有人能够提供帮助。

非常感谢,

克雷格


查询以获得男性:

SELECT a.clientStatus, COUNT(c.sex)

FROM

Tblclientstatus AS a RIGHT OUTER JOIN a.tblclients AS b
LEFT OUTER JOIN b.tblsex AS c

WHERE c.sex = 'male'

GROUP BY a.clientStatus

1 个答案:

答案 0 :(得分:0)

你可以有一个案例,为每个性别添加“1”。 像这样:

SELECT a.clientStatus, 
COUNT(
case when c.sex = 'male' then 1
        else 0 end
) as males,
COUNT(
case when c.sex = 'female' then 1
        else 0 end
) as females,
FROM
Tblclientstatus AS a RIGHT OUTER JOIN a.tblclients AS b
LEFT OUTER JOIN b.tblsex AS c
GROUP BY a.clientStatus