카운트 및 그룹별 MySQL 쿼리
게시자들을 위한 서로 다른 레코드가 있는 테이블이 있습니다. 각 레코드에는 타임스탬프 유형 열에 날짜가 표시됩니다.
id | id_publisher | date
1 1 11/2012 03:09:40 p.m.
2 1 12/2012 03:09:40 p.m.
3 2 01/2013 03:09:40 p.m.
4 3 01/2013 03:09:40 p.m.
5 4 11/2012 03:09:40 p.m.
6 4 02/2013 03:09:40 p.m.
7 4 02/2012 03:09:40 p.m.
각 출판사에서 매달 발행하는 레코드의 개수를 세어봐야 합니다.예를들면
Month | id_publisher | num
11/2012 | 1 | 1
11/2012 | 2 | 0
11/2012 | 3 | 0
11/2012 | 4 | 1
.....
02/2013 | 4 | 2
해봤습니다.select count(id) from raw_occurrence_record group by month(date), id_publisher;
하지만, 효과가 없었습니다.
당신의 데이트가 실제라고 가정할 때datetime
열:
SELECT MONTH(date), YEAR(date), id_publisher, COUNT(*)
FROM raw_occurrence_record
GROUP BY MONTH(date), YEAR(date), id_publisher
다음과 같이 월과 연도를 연결할 수 있습니다.
SELECT CONCAT(MONTH(date), '/', YEAR(date)) AS Month, id_publisher, COUNT(*)
FROM raw_occurrence_record
GROUP BY MONTH(date), YEAR(date), id_publisher
기록이 없는 달을 찾으려면 날짜표가 필요합니다.하나를 만들 수 없다면,UNION ALL
다음과 같은 달력 테이블:
SELECT a.year, a.month, b.id_publisher, COUNT(b.id_publisher) AS num
FROM
(SELECT 11 AS month, 2012 AS year
UNION ALL
SELECT 12, 2012
UNION ALL
SELECT 1, 2013
UNION ALL
SELECT 2, 2013) a
LEFT JOIN raw_occurence_record b
ON YEAR(b.date) = a.year AND MONTH(b.date) = a.month
GROUP BY a.year, a.month, b.id_publisher
데모 보기
언급URL : https://stackoverflow.com/questions/14344810/mysql-query-with-count-and-group-by
'programing' 카테고리의 다른 글
자바스크립트 효율성: 'for' vs 'for each' (0) | 2023.10.16 |
---|---|
Angular가 실행하려면 웹 서버가 필요합니까?그래서 브라우저에 로컬 파일의 url을 지정하면 Angular가 작동합니까? (0) | 2023.10.16 |
사용자 지정 셸에서 Windows용 GitHub과 함께 제공되는 posh-git을 사용하는 방법은 무엇입니까? (0) | 2023.10.16 |
AngularJS: 여러 파일에서 컨트롤러를 만드는 방법 (0) | 2023.10.16 |
Apache POI-HSSF 대 POI-XSSF (0) | 2023.10.16 |