代码之家  ›  专栏  ›  技术社区  ›  gsueagle2008

将distinct关键字限制为一列

  •  6
  • gsueagle2008  · 技术社区  · 15 年前

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

    3 回复  |  直到 14 年前
        1
  •  6
  •   soulmerge    14 年前

    为了能够做到这一点,MySQL必须知道如何处理其他列。您按应该是唯一的列进行分组,并使用一个函数告诉它如何处理其他列(所谓 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
    
        2
  •  3
  •   easel    15 年前

    您需要使用Group By。

    从表中选择SUM(A)、MIN(B)、C,其中A>1按C分组;

    请注意,如果您对一列进行分组并返回其他列,则必须提供某种方式将其他字段中的所有值塞进一列中。这种方法被称为聚合函数,您必须查看手册中的数据库版本,才能确切知道您的选项是什么。见 http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html 对于MySQL。

        3
  •  -3
  •   jerebear    15 年前

    从表中选择distinct column_1、column_2、column_3

    不过,你可能想详细阐述一下你的问题,因为我的回答似乎有点过于直截了当。

    当用distinct作为列名的前导时,它只检查该列。我误解了这个问题吗?