我正在使用yii2和activerecords。我在找一个部门的种族分布。我有一个查询,将员工分组到他们的部落,并根据性别进一步分组,并返回每个案例中的总数。
最终结果应该类似于这张照片:
少数民族小计是将该部门所有部落的总数相加得出的。到目前为止,我已经掌握了每个部门所有部落的总数。我怎样才能把这些总数加起来得到民族小计呢?
我的代码:
$query = StaffEmploymentListView::find()
->select([
'DEPT_NAME',
'TRIBE_NAME',
"COUNT(CASE WHEN GENDER='MALE' THEN 1 END) AS MALE_COUNT",
"COUNT(CASE WHEN GENDER='FEMALE' THEN 1 END) AS FEMALE_COUNT",
"COUNT(TRIBE_NAME) AS TRIBE_COUNT",
])
->groupBy(['DEPT_NAME','TRIBE_NAME']);
原始sql答案也是受欢迎的。
2条答案
按热度按时间qlvxas9a1#
我不熟悉yii,但一般来说你可以用它
+
添加值,因此您的选择标准如下count(...) + count(...)
将选择这两个计数之和。ig9co6j12#
这也许能帮你,我用postgresql平台