복붙노트

[SQL] 집계 함수없이 GROUP BY 절에 대한 모든 이유?

SQL

집계 함수없이 GROUP BY 절에 대한 모든 이유?

나는 (완전히) 순간 SQL을 배우고 GROUP BYclause 건너 온거야.

GROUP BY 집계 또는 그룹 인수 (들)에 따라 결과 집합 당신이 그것을 제공합니다. 쿼리에이 절을 사용하는 경우 다음 찾는 평균과 같은 결과 집합 (AVG ()) 또는 주파수에 대한 통계 정보를 찾을 수있는 결과 집합에 집계 기능을 수행 할 수 있습니다 (COUNT ()).

내 질문은 :이 그룹은 동반 집계 함수없이 어떤 방법으로 문에 의해 유용하다?

최신 정보 구분된다 (아마) 나는 그것이 느린 의심 때문에 나쁜 생각의 동의어로 GROUP BY를 사용.

해결법

  1. ==============================

    1.DISTINCT 사용하면 이러한 상황에서 동의어,하지만 당신이 원하는하려는 이유는 / 절 세부 사항을 HAVING 정의 할 수 있도록하기 위해 될 것 GROUP BY 절을 정의해야합니다.

    DISTINCT 사용하면 이러한 상황에서 동의어,하지만 당신이 원하는하려는 이유는 / 절 세부 사항을 HAVING 정의 할 수 있도록하기 위해 될 것 GROUP BY 절을 정의해야합니다.

    당신이 HAVING 절을 정의해야하는 경우, 다음과 같은 방법으로 그룹을 정의 할 필요가 - 당신은 DISTINCT과 함께 그것을 할 수 없습니다.

  2. ==============================

    2.당신은 어떤 집계하지 않고 GROUP BY를 사용하여 DISTINCT 선택을 수행 할 수 있습니다.

    당신은 어떤 집계하지 않고 GROUP BY를 사용하여 DISTINCT 선택을 수행 할 수 있습니다.

  3. ==============================

    3.두 방법 Majorly에 사용되는 캔에 의해 그룹 1) SQL 집계 기능과 함께 2) 결과 집합에서 중복 행을 제거하기

    두 방법 Majorly에 사용되는 캔에 의해 그룹 1) SQL 집계 기능과 함께 2) 결과 집합에서 중복 행을 제거하기

    설명 위의 SO 사용의 두 번째 부분에서 귀하의 질문에 거짓말로 대답합니다.

  4. ==============================

    4.참고 : 모든 아래에만 MySQL의 적용

    참고 : 모든 아래에만 MySQL의 적용

    GROUP BY가 순서대로 결과를 반환 보장, DISTINCT는 없습니다.

    ORDER BY NULL과 함께 GROUP BY는 DISTINCT (그리고 말의 방식으로 구현)와 같은 효율성이다. 필드에서 인덱스 집계 (또는 distinctified)되고이 경우 두 조항은이 분야에 걸쳐 느슨한 인덱스 스캔을 사용합니다.

    GROUP BY, 당신은 분류되지 않은 비 집계 식을 반환 할 수 있습니다. MySQL은 식을 계산하기 위해 해당 그룹에서 어떤 임의의 값을 선택합니다.

    GROUP BY를 사용하면 SELECT 절에서 표현하여 GROUP을 생략 할 수 있습니다. DISTINCT로, 당신은 할 수 없습니다. DISTINCT 연에 의해 반환 된 모든 행은 고유 보장됩니다.

  5. ==============================

    5.그것은 더 만 집계 기능 이상에 사용됩니다.

    그것은 더 만 집계 기능 이상에 사용됩니다.

    예를 들어, 다음 코드를 고려하십시오

    SELECT product_name, MAX('last_purchased') FROM products GROUP BY product_name
    

    이것은 그러나 그 레코드의 최신 업데이트 된 값으로, 제품 당 한 한 결과를 반환합니다.

  6. from https://stackoverflow.com/questions/2197693/any-reason-for-group-by-clause-without-aggregation-function by cc-by-sa and MIT license