【发布时间】:2019-06-12 11:36:09
【问题描述】:
“我有一个这样的表,我使用 group by 和 sum() 函数来计算 针对在不同地区举行的每种培训类型的参与者总数。现在我想做的是我想要每个培训类型类别的总和,例如:对于 CMST,我想要 CMST 和所有其他类别之后的男性、女性和总参与者的总和像这样:”
我在我的视图表中显示此表并使用 mvc 实体框架。是否可以通过 sql 查询执行此操作,或者通过编码执行此操作更合适。请建议实现它的最佳方法。
我用来实现它的查询如下:
select [District_Name] as DISTRICT_NAME,
[Training_Type],
sum(Male_Participants) as Male_Participants,
sum([Female_Participants]) as Female_Participants,
sum([Total_Participants]) as Total_Participants
from [TrainingsData]
where
[Training_Type] = 'CMST'
or
[Training_Type] = 'LMST'
or
[Training_Type] = 'Community Awareness Training (CAT)'
or
[Training_Type] = 'Exposure Visit'
or
[Training_Type] = 'Literacy & Numeracy'
or
[Training_Type] = 'Orientation Training Workshop (OTW)'
or
[Training_Type] = 'TVET'
group by [District_Name],[Training_Type]
【问题讨论】:
-
您可能只想使用
SELECT training_type, SUM(male_paticipants) as males, SUM(female_participants) as females, SUM(male_participants)+SUM(female_participants) as total FROM _tbl GROUP BY training_type -
您可以使用
GROUPING SETS在 T-SQL 中获取总计和小计。因此,在您的情况下,您可能会使用GROUP BY GROUPING SETS ((DISTRICT_NAME, TrainingType), (TrainingType))而不是GROUP BY DISTRICT_NAME, TrainingType -
我想以第二个表格的形式输出。即显示每种培训类型的小计。我不想要总和。
标签: sql sql-server asp.net-mvc entity-framework