테이블에 사용자 정보가 있습니다.열 이름없이 MySQL 그룹
select * from accounts group by cid;
그냥 예를 들어, sum()
같은 집계 함수와 일반 group by
작품 : 문에 의해
mysql> desc accounts;
+-------------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------+------+-----+---------+----------------+
| cid | int(11) | NO | PRI | NULL | auto_increment |
| username | text | YES | | NULL | |
| password | text | YES | | NULL | |
| mysignature | text | YES | | NULL | |
| is_admin | varchar(5) | YES | | NULL | |
+-------------+------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)
정상 그룹은 항상 다음과 같은 하나 이상의 열 이름으로 다음과 같습니다.
mysql> select username from accounts group by now();
+----------+
| username |
+----------+
| admin |
+----------+
1 row in set (0.00 sec)
나는 새로운 MySQL의에서 오전 :
나는 일부는 이해하지 못할 열 이름없이 표현에 의해 다음과 발견했다. 이 쿼리는 어떻게 작동합니까? 감사합니다. .
'GROUP BY' 절은 단순히 열 이름 일 수있는 하나 이상의 * 표현식을 포함하지만 레코드가 속한 그룹을 판별하기 위해 각 레코드에 대해 평가되는 다른 것일 수도 있습니다. 'NOW()'의 경우 모든 레코드에 대해 결과가 동일하므로 모든 레코드가 같은 그룹에 저장됩니다. 그러한 모든 레코드가'username'과 같은 값을 가지지 않는 한, 선택 될 것은 * indeterminate *입니다. [GROUP BY'에 대한 MySQL 확장] (http://dev.mysql.com/doc/en/group-by-extensions.html)을 참조하십시오. – eggyal
그것은 '성명 별 일반 그룹'입니까? 집계 함수가 없으면 GROUP BY의 사용은 전적으로 부적절합니다. 다른 많은 RDMS와 달리 MySQL은 쓰레기를 공급할 때 오류가 발생하지 않도록 최선을 다합니다. 이것의 지혜는 의심스럽고 격렬하게 토론됩니다. 귀하의 질의는 의미가 없으므로 설명을하려고하면 (아마도) 무의미하며 내 보너스 이상입니다. – Strawberry