将distinct关键字限制为一列

时间:2009-04-09 04:14:02

标签: sql mysql

如何在mysql中应用distinct关键字,以便只检查一个列字段是唯一的,同时仍然从表中返回其他列?

3 个答案:

答案 0 :(得分:6)

为了能够做到这一点,mysql必须知道如何处理其他列。您是GROUP BY应该是唯一的列,并使用一个函数来告诉它如何处理其他人(所谓的aggregate function)。 MAX()COUNT()是常见的例子:

SELECT studentId, COUNT(courseId) AS AmountEnrolledCourses
FROM student_enrollment
GROUP BY studentId

SELECT athlete, MAX(distance) AS PersonalRecord
FROM longjump
GROUP BY athlete

答案 1 :(得分:3)

您需要使用group by。

SELECT SUM(A),MIN(B),C FROM TABLE WHERE A> 1 GROUP BY C;

请注意,如果您要对一列进行分组并返回其他列,则必须提供某种方法将其他字段中的所有值填充为一列。这种方式称为聚合函数,您必须检查数据库版本的手册以确切了解您的选项。有关mysql的信息,请参阅http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html

答案 2 :(得分:-3)

SELECT DISTINCT Column_1,Column_2,Column_3 FROM Table

但是,您可能希望详细说明您的问题,因为我的回答似乎有点过于简单。

当您使用DISTINCT引导列名时,它只检查该列。我误解了这个问题吗?