sql - SQL Server:从多个表中计算百分比
问题描述
我正在创建一个解决方案,该解决方案将按年级计算处于特定 bmi 状态的学生的百分比。我已经创建了一个存储学生的表 student_info,以及存储学生 bmi 统计信息的多个表 g1、g2、g3、g4、g5、g6 和 kinder。我努力了
SELECT
si.grade AS 'Grade Level', g4.fstat AS 'Status',
(SELECT COUNT(si.lrn) * 100.0 / (SELECT COUNT(*) FROM student_info)) AS 'Total'
FROM
student_info AS si, g4
GROUP BY
g4.fstat, si.grade
我只是从 g4 表中得到结果,但我想加入所有 7 个表来计算它们。感谢帮助
解决方案
您只能获得g4
表格的结果,因为这是您选择的唯一表格。假设您在每个年级都有相同的表结构,并且没有超过一个年级的学生,我会首先将它们联合在一起,如下所示:
Select 'K' as grade, * from kinder
union all
Select '1' as grade, * from g1
union all
Select '2' as grade, * from g2
.... 等你的桌子的其余部分。
然后使用该联合的结果(作为表或临时表,或作为 CTE),而不仅仅是g4
您拥有的查询中的表。
推荐阅读
- flutter - 处理 JSON 时改造 Dart 异常
- single-sign-on - 在基于 SSO 的应用程序中管理多个 SP(服务提供商)的角色
- javascript - Heroku 上的 Rails 应用程序加载 Javascript,但 JS 函数未运行
- kotlin - 列表排序和获取元素
- reactjs - 将两个独立的 React 应用程序合并为一个
- javascript - R Shiny - 数据表中的子行(行数据未呈现)
- gdb - Debugging llvm with gdb but can't find source code
- svelte - How to pass parameters to on:click in Svelte?
- r - How to extract text between two words using str_extract?
- node.js - TypeError:无法在模型创建时读取未定义的属性“长度”