두 필드에서 그룹화 사용 및 SQL에서 개수


85

mysql db에 그룹과 하위 그룹의 두 열이있는 테이블이 있습니다. 아래를 참조하십시오.

 group, subGroup
 grp-A, sub-A
 grp-A, sub-A
 grp-A, sub-B      
 grp-B, sub-A
 grp-B, sub-B
 grp-B, sub-B

각 고유 커플 그룹 / 하위 그룹에 대한 레코드 수를 얻으려고합니다.

이것이 내가 기대하는 것입니다.

group, subGroup, count
grp-A, sub-A, 2
grp-A, sub-B, 1
grp-B, sub-A, 1
grp-B, sub-B, 2

일부 게시물을 읽은 후 group by, count ()를 사용하여 여러 SQL 쿼리를 시도했지만 예상 결과를 얻지 못했습니다. 이 문제를 어떻게 해결할 수 있습니까?


2
나는 다른 경우, 각 그룹에 대한 sugroup의 수를 원했기 때문에 이것은 쿼리 SELECT a, b, COUNT (distinct b) FROM tbl GROUP BY a
luky

답변:


139

나는 당신이 찾고 있다고 생각합니다 : SELECT a, b, COUNT(a) FROM tbl GROUP BY a, b


1
안녕하세요 Corbinb. 대단히 감사합니다. 작동 중입니다. 나는 당신이 제안하는 것을했지만 a, b로 그룹을 지정했습니다. 다시 한 번 감사드립니다
Marc

3
a and bMySQL에 대한 진술처럼 보입니다 (실제로 구문 오류인지 또는 0 또는 1 반환으로 그룹화되는지 확실하지 않습니다. 특히 varchar 필드의 경우 구문 오류를 가정합니다). 여러 열로 그룹화하려면 쉼표 만 사용하면됩니다.
Corbin

1
감사합니다 !! .. 문제는 내 질문을 표현할 수 없었고 인터넷 검색에 많은 시간을 보냈고 마침내 여기에 간단하고 점이 찍힌 해결책을 찾았습니다.
faheem farhan

카운트 대신 전체 레코드 세부 정보가 필요했습니다. 예를 들어 grpA에는 subA와 subB라는 2 개의 하위 그룹이 있으므로 각 하위 그룹에 대한 전체 레코드를 검색해야합니다. 누구든지 나를 도울 수 있습니까? @Corbin
관리자 7798

2
나는 각 그룹에 대한 sugroup의 수를 원했기 때문에 이것은 쿼리 SELECT a, b, COUNT (distinct b) FROM tbl GROUP BY a
luky

8
SELECT group,subGroup,COUNT(*) FROM tablename GROUP BY group,subgroup

카운트 대신 전체 레코드 세부 정보가 필요했습니다. 예를 들어 grpA에는 subA와 subB라는 2 개의 하위 그룹이 있으므로 각 하위 그룹에 대한 전체 레코드를 검색해야합니다. 누구든지 나를 도울 수 있습니까? @ user1127214
관리자 7798

7

열, 그룹 및 하위 그룹을 모두 그룹화 한 다음 집계 함수를 사용해야합니다 COUNT().

SELECT
  group, subgroup, COUNT(*)
FROM
  groups
GROUP BY
  group, subgroup

1
그룹 나 오타를 보인다 = groupName을!
csharpwinphonexaml

카운트 대신 전체 레코드 세부 정보가 필요했습니다. 예를 들어 grpA에는 subA와 subB라는 2 개의 하위 그룹이 있으므로 각 하위 그룹에 대한 전체 레코드를 검색해야합니다. 누구든지 나를 도울 수 있습니까? @farzane
관리자 7798
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.