sql - 适当的 SELECT 语句

标签 sql postgresql

我有以下表格:

CREATE TABLE Subject
(
    Subject_Code      INTEGER,
    Subject_Year      VARCHAR (8),
    PRIMARY KEY (Subject_Code, Subject_Year),
    Teacher_ID INTEGER REFERENCES 
);

CREATE TABLE Teacher
(
    TeacherID        INTEGER PRIMARY KEY,
    FirstName         TEXT,
    Department_ID INTEGER References Academic Department(Department_ID)
);

CREATE TABLE Subject-taken
(
    Marks_Obtained   INTEGER,
    Subject_Code      INTEGER REFERENCES subject (Subject_Code),
    Candidate_ID       INTEGER REFERENCES Candidate (Candidate_ID),
    PRIMARY KEY (Subject_Code, Candidate_ID)
);

CREATE TABLE Academic_Department
(
    Department_ID     INTEGER PRIMARY KEY,
    Department_Name   TEXT
);

我已经尝试过以下选择语句

  SELECT m.subject_code,
         MIN (marks_obtained) AS Min_Marks,
         MAX (marks_obtained) AS Max_Marks
    FROM Subject-taken m, Subject a
GROUP BY m.Subject_Code;

想要使用连接功能关于在何处使用它以连接学科和学生的部门的任何建议

最佳答案

利用联接在表之间链接数据。使用 group by 对某些字段进行统计。你可以尝试这样的事情:

SELECT
    Subjects.Subject_Code,
    Subjects.Subject_Name,
    Teachers.TeacherID,
    Academic_Department.Department_ID,
    min(Subject-taken.Marks_Obtained) as min_marks,
    max(Subject-taken.Marks_Obtained) as max_marks,
    avg(Subject-taken.Marks_Obtained) as avg_marks,
    stddev_samp(subject-taken.Marks_Obtained) as stddev_marks
FROM
    Subjects LEFT JOIN
    Teachers ON Subjects.TeacherID = Subjects.TeacherID LEFT JOIN
    Academic_Department ON Teachers.Department_ID = Academic_Department.Department_ID LEFT JOIN
    Subject-taken ON Subjects.Subject_Code = Subject-taken.Subject_Code
GROUP BY
    Subjects.Subject_Code,
    Subject.Subject_Name,
    Teacher.TeacherID,
    Academic_Department.Department_ID

我真的不知道stddev_samp是不是你需要的聚合函数,stddev_pop也可以。请引用this PostgreSQL documentation table找出答案。

关于sql - 适当的 SELECT 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55535602/

相关文章:

sql - 删除 SQL 中括号内的文本

php - Mysql - Where IN 子句未正确选择数据

python - 适用于 PostgreSQL 和 MySQL 的纯 python SQL 解决方案?

python - PostgreSQL 物化 View 未从 Python 刷新

python - 使用 Python 2.7 更新 SQL 表?

完全外连接中 select inside select 的 MySQL 别名

SQL 循环从不同的开始和结束日期生成许多行

python - sqlalchemy 和 postgresql 的自动增量

hibernate - 如何从 postgresql 数据库获取最新记录?

Django/postgres 事务隔离级别设置被忽略