gpt4 book ai didi

sql - 多列求和 SQL

转载 作者:行者123 更新时间:2023-12-02 06:32:30 24 4
gpt4 key购买 nike

我有如下学生成绩数据集

RegNo Subj1 Mark1 Subj2 Mark2 Subj3 Mark3 Subj4 Mark4

其中 Subj 是主题名称和给定的标记。

数据是这样的,同一主题可能在不同学生的任何列中。例如。 Student1 可能选择了 Eng 作为 Subj1,而 Student2 可能选择了 Subj2。

现在我需要每个科目的平均值。我如何找到?

最佳答案

你应该修复你的数据结构。通常,当您的列包含相同的数据并且仅在末尾以数字区分时,您的结构就很糟糕。你想要一个看起来像这样的表:

Regno Subj Mark

每个学生一行,subj。这称为联结表,是规范化数据过程的一部分。

您可以为这个查询即时创建一个,但您应该真正修复数据结构:

select subj, avg(mark)
from ((select regno, subj1 as subj, mark1 as mark from studentmark) union all
(select regno, subj2 as subj, mark2 as mark from studentmark) union all
(select regno, subj3 as subj, mark3 as mark from studentmark) union all
(select regno, subj4 as subj, mark4 as mark from studentmark)
) sm
group by sub;

sample 在 SQL Fiddle .

关于sql - 多列求和 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30864076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com