MySQL의 그룹별 문제. .
某草草
某草草 2017-05-18 10:52:23
0
9
699

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

으아악
某草草
某草草

모든 응답(9)
刘奇

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

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...
给我你的怀抱

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

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

刘奇

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

Peter_Zhu

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

刘奇

으아아아

伊谢尔伦

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

黄舟

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

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

滿天的星座

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

给我你的怀抱

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

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

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!