[SQL] MySQL은 달과 연도 별 그룹
SQLMySQL은 달과 연도 별 그룹
각 행에 타임 스탬프와 테이블을 감안할 때, 당신은 어떻게이 특정 JSON 개체 형식에 맞게 쿼리를 포맷 할 것입니다.
나는 몇 년 / 개월로 JSON 개체를 구성하려합니다.
JSON은 쿼리를 기반으로합니다 :
{
"2009":["August","July","September"],
"2010":["January", "February", "October"]
}
여기에 지금까지 가지고있는 쿼리입니다 -
SELECT
MONTHNAME(t.summaryDateTime) as month, YEAR(t.summaryDateTime) as year
FROM
trading_summary t
GROUP BY MONTH(t.summaryDateTime) DESC";
그것은 다른 년간 함께 덩어리 (예상) 때문에 쿼리는 분해된다.
해결법
-
==============================
1.
GROUP BY YEAR(t.summaryDateTime), MONTH(t.summaryDateTime) DESC;
당신이 원하는 것입니다.
-
==============================
2.
GROUP BY DATE_FORMAT(summaryDateTime,'%Y-%m')
-
==============================
3.
SELECT MONTHNAME(t.summaryDateTime) as month, YEAR(t.summaryDateTime) as year FROM trading_summary t GROUP BY YEAR(t.summaryDateTime) DESC, MONTH(t.summaryDateTime) DESC
올바른 순서를 얻기 위해 연도와 월 모두 DESC를 사용해야합니다.
-
==============================
4.나는 선호한다
나는 선호한다
SELECT MONTHNAME(t.summaryDateTime) as month, YEAR(t.summaryDateTime) as year FROM trading_summary t GROUP BY EXTRACT(YEAR_MONTH FROM t.summaryDateTime) DESC";
-
==============================
5.나는이 오래된 질문 알아요,하지만 당신은 DB 수준에서 월 이름 필요하지 않은 경우 다음 작업을해야합니다 :
나는이 오래된 질문 알아요,하지만 당신은 DB 수준에서 월 이름 필요하지 않은 경우 다음 작업을해야합니다 :
SELECT EXTRACT(YEAR_MONTH FROM summaryDateTime) summary_year_month FROM trading_summary GROUP BY summary_year_month;
EXTRACT 기능 문서를 참조하십시오
당신은 아마이 수행 더 좋을 찾을 것입니다 .. 당신은 응용 프로그램 계층에서 JSON 객체를 구축하는 경우 당신이 결과를 통해 실행, 당신은 포맷 / 주문을 할 수 있습니다.
N.B. 나는 당신이 아마 당신이 ORDER BY 절을 누락, MySQL의에서 GROUP BY 절에 DESC를 추가 할 수 있습니다 인식하지 않았다 :
SELECT EXTRACT(YEAR_MONTH FROM summaryDateTime) summary_year_month FROM trading_summary GROUP BY summary_year_month ORDER BY summary_year_month DESC;
-
==============================
6.이 같은 작업을 수행해야합니다
이 같은 작업을 수행해야합니다
SELECT onDay, id, sum(pxLow)/count(*),sum(pxLow),count(`*`), CONCAT(YEAR(onDay),"-",MONTH(onDay)) as sdate FROM ... where stockParent_id =16120 group by sdate order by onDay
-
==============================
7.이 같은 사용 EXTRACT 기능
이 같은 사용 EXTRACT 기능
mysql> SELECT EXTRACT(YEAR FROM '2009-07-02'); -> 2009
-
==============================
8.또한이 작업을 수행 할 수 있습니다
또한이 작업을 수행 할 수 있습니다
SELECT SUM(amnt) `value`,DATE_FORMAT(dtrg,'%m-%y') AS label FROM rentpay GROUP BY YEAR(dtrg) DESC, MONTH(dtrg) DESC LIMIT 12
년 월별 순서. 이 대비하기 위해 이번 달 12 개의 달 방식 뒤로 싶은 말은하자
-
==============================
9.당신은 월별로 그룹화 만, 당신은에 의해 그룹에 YEAR ()를 추가해야
당신은 월별로 그룹화 만, 당신은에 의해 그룹에 YEAR ()를 추가해야
-
==============================
10.
SELECT YEAR(t.summaryDateTime) as yr, GROUP_CONCAT(MONTHNAME(t.summaryDateTime)) AS month FROM trading_summary t GROUP BY yr
아직 정확히 당신이 찾고있는 구조를 얻기 위해 외부 스크립트에서 처리해야합니다.
예를 들어, 사용을 위해 PHP는 () 월 이름의 목록 후 사용로 json_encode에서 배열을 만들 폭발
-
==============================
11.이것은 내가 그것을 할 방법입니다 :
이것은 내가 그것을 할 방법입니다 :
GROUP BY EXTRACT(YEAR_MONTH FROM t.summaryDateTime);
-
==============================
12.사용하다
사용하다
GROUP BY year, month DESC";
대신에
GROUP BY MONTH(t.summaryDateTime) DESC";
from https://stackoverflow.com/questions/3366895/group-by-month-and-year-in-mysql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] MS Access 테이블로 내보내기 데이터를 엑셀 VBA를 사용하여 (0) | 2020.04.09 |
---|---|
[SQL] 엑셀 함수는 워크 시트 데이터에 대한 쿼리 SQL-처럼 만들어? (0) | 2020.04.09 |
[SQL] INSERT ... ON DUPLICATE KEY (아무것도하지 않고) (0) | 2020.04.09 |
[SQL] 이 SQL 문에 대한 실행 순서는 무엇인가 (0) | 2020.04.09 |
[SQL] 어떻게 같은 SELECT 문에서 DISTINCT와 ORDER BY를 사용 하는가? (0) | 2020.04.09 |