从 sql 中删除重复值

Posted

技术标签:

【中文标题】从 sql 中删除重复值【英文标题】:Removing repeating values from sql 【发布时间】:2021-12-10 03:53:20 【问题描述】:

我有一个关于课堂作业的问题: 教授想要复习有关看似困难的测验问题的信息。

创建一个名为 HardQuizzes 的视图,其中包含测验编号、测验日期、平均分数、问题 ID、选择 A 的学生人数、选择 B 的学生人数、选择 C ​​的学生人数以及选择了 C 的学生人数D 对于平均分数低于 15 的测验中的每个问题。验证视图是否已正确创建。确认更改。

我想我想出了一个办法来得到这个答案:

CREATE VIEW HardQuizzes 
AS
    SELECT DISTINCT
        QQ.QuizNum,
        QQ.QuizDate,
        AvgScore, 
        NumChoseA, 
        NumChoseB,
        NumChoseC, 
        NumChoseD 
    FROM
        QuizQuestions QQ, 
        Quizzes Q 
    WHERE
        QQ.QuizNum = Q.QuizNum 
        AND AvgScore < 15

但是当我这样做时,它会创建视图,但有很多值重复,我无法找到阻止它们重复的方法。有办法吗?

This is a screenshot of the view when I make it

【问题讨论】:

Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI JOIN 语法-92 SQL 标准(近 30 年前),不鼓励使用它 我在屏幕截图中的数据中没有看到任何重复的行 - DISTINCT 似乎正在工作。那么你的问题是什么,真的吗?? 【参考方案1】:

因为这是一项任务,希望能将你推向正确的方向 -

您可以调查原始表格中的哪些其他数据?

是否有多个班级参加这些测验?

如果有多个类,问题的意图是否会导致您认为应该合并记录?

如果是这种情况,可以使用 GROUP BY 和 NumChose 列上的聚合函数来完成。

【讨论】:

以上是关于从 sql 中删除重复值的主要内容,如果未能解决你的问题,请参考以下文章

如何从表中删除重复值 [重复]

如何从 SQL Server 中的表中删除重复行 [重复]

Sql命令删除从文本字段中获取的值[重复]

删除sql视图中的重复记录

SQL语句删除重复的记录

SQL - 删除两列之间的重复值