찾다

 >  Q&A  >  본문

MySQL의 그룹별 문제. .

Mysql에서는 다음과 같은 작성 방법이 허용됩니다. 하지만 엄격한가요, 아니면 이런 글쓰기를 지원하나요? 이 문제를 극복하는 방법에 대해 의문이 있으면 도와주세요.

으아악
某草草某草草2752일 전728

모든 응답(9)나는 대답할 것이다

  • 怪我咯

    怪我咯2017-05-18 10:54:23

    ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

    MySQL 5.7.5 이상에서는 기능 종속성 감지를 구현합니다. ONLY_FULL_GROUP_BY SQL 모드가 활성화되면(기본적으로) MySQL은 선택 목록, HAVING 조건 또는 ORDER BY 목록이 GROUP BY 절에 이름이 지정되지 않았거나 기능적으로 종속되지 않은 집계되지 않은 열을 참조하는 쿼리를 거부합니다. . (5.7.5 이전에는 MySQL이 기능 종속성을 감지하지 않으며 ONLY_FULL_GROUP_BY가 기본적으로 활성화되어 있지 않습니다. 5.7.5 이전 동작에 대한 설명은 MySQL 5.6 참조 설명서를 참조하세요.)

    来源:https://dev.mysql.com/doc/ref...

    회신하다
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-18 10:54:23

    select의 필드는
    user_name별로 사용자 그룹에서 user_name을 선택하여 그룹에서 작성해야 합니다.

    http://blog.csdn.net/u2830560...

    회신하다
    0
  • 怪我咯

    怪我咯2017-05-18 10:54:23

    먼저 그룹화의 개념과 그룹화 후에 어떤 효과를 얻을 수 있는지 이해하세요.
    그룹화는 그룹의 속성을 기반으로 한 통계 분석입니다.
    예를 들어, 성별로 그룹화한 학생 테이블에서 남자아이는 몇 명이고 여자아이는 몇 명입니까?
    쿼리 결과 열에는 합계, 개수 등 집계 함수로 구성되어야 합니다. 예:
    select count(*),성별별 학생 그룹의 성별;
    사용자 그룹에서 user_name별로 *를 선택하는 경우 어떤 종류의 통계 결과를 얻으시겠습니까?
    mysql5.6에서는 기본적으로 user_name으로 사용자 그룹에서 select *를 사용하여 이 쓰기 방법을 사용할 수 있지만 실제로는 명령문이 내부적으로 변환됩니다.
    mysql5.7 이상에서는 기본적으로 이 쓰기 방법을 사용할 수 없으며 오류가 보고됩니다.
    그래서 글을 쓰기 전에 그룹화를 통해 무엇을 세어야 할지 생각해보고 적절한 집계 함수를 사용하세요

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-05-18 10:54:23

    SQL 문에서 GROUP BY를 사용할 때 주의할 점 3가지
    1: 별칭을 사용할 수 없습니다.
    2: 함수 필드를 제외하고 select에 나타나는 필드는 그룹별로 나타나야 합니다.
    3: 별칭에는 예약어를 사용할 수 없습니다. MYSQL을 클릭하기 위한 요구 사항은 없습니다!
    명령문을 다시 살펴보겠습니다. 사용자 테이블에 user_name 필드가 하나만 있으면 이 명령문에는 문제가 없습니다.
    사용자 테이블에 필드가 두 개 이상 있으면 이 명령문은 mysql에서는 문제가 없습니다. 오라클과 SQLServer에서

    회신하다
    0
  • 怪我咯

    怪我咯2017-05-18 10:54:23

    으아아아

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-18 10:54:23

    user_name 필드가 존재하면 문제가 없습니다. 그룹화는 필드별로 그룹화하는 것입니다. 일반적으로 귀하와 같은 SQL을 실행할 수도 있습니다. 그러나 user_name은 일반적으로 고유하므로 고유 필드별로 그룹화하는 것은 의미가 없습니다.

    회신하다
    0
  • 黄舟

    黄舟2017-05-18 10:54:23

    이것은 mysql에 대한 특수 기능 지원입니다. @xuexipha가 말했듯이 매개변수를 통해 끌 수 있습니다.

    그러나 그룹화 후 반환되는 레코드 수는 이론적으로 그룹화 전보다 적으므로 사용하지 않는 것이 좋습니다.
    어떤 레코드가 반환되는지 확인하지 않고 직접 선택*을 사용하세요.

    회신하다
    0
  • 滿天的星座

    滿天的星座2017-05-18 10:54:23

    일반적으로 집계함수는 조합해서 사용하는 경우가 많습니다

    회신하다
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-18 10:54:23

    집계로 그룹화한 후에는 select 절의 요소만 유지하는 것이 가장 좋습니다:
    1, 상수
    2, 그룹에서 지정한 열 이름
    3, 집계 함수(예: count(), avg()) , 합계( *)잠깐

    결과*에는 그룹당 하나의 레코드만 나열되며, 첫 번째 레코드인지 임의의 값인지 모르겠습니다

    회신하다
    0
  • 취소회신하다