0
내가 텍스트로 다음 연도 + 월별로 그룹에 테이블의 내용을 원하는/O를 기록 승 개월을 얻을 카운트까지 추가 :SQL 그룹,하지만 너무
+-------------+---------+----------+----------+
| TEXT | T1_YEAR | T1_MONTH | T1_COUNT |
+-------------+---------+----------+----------+
| First Text | 2013 | 1 | 1 |
| First Text | 2013 | 2 | 1 |
| First Text | 2013 | 3 | 1 |
| First Text | 2013 | 5 | 1 |
| First Text | 2013 | 6 | 3 |
| First Text | 2013 | 7 | 1 |
| First Text | 2013 | 8 | 3 |
| First Text | 2013 | 9 | 1 |
| First Text | 2013 | 10 | 2 |
| Second Text | 2013 | 1 | 2 |
| Second Text | 2013 | 2 | 5 |
| Second Text | 2013 | 3 | 8 |
| Second Text | 2013 | 4 | 5 |
| Second Text | 2013 | 5 | 23 |
| Second Text | 2013 | 6 | 9 |
| Second Text | 2013 | 7 | 27 |
+-------------+---------+----------+----------+
select
table1.TEXT text,
year(table1.timestamp) t1_year,
month(table1.timestamp) t1_month,
count (*) as t1_count
from table1
group by
table1.TEXT,
year(table1.timestamp),
month(table1.timestamp)
with ur;
을
이제 카운트가 0 인 누락 월에 대한 결과 테이블에 항목을 넣을 수 있습니다.
임시 테이블에 대한 다른 스레드를 읽었지만 제대로 작동시키는 방법을 찾지 못했습니다.
WITH DATERANGE(LEVEL, TEMP_DATE) AS (
SELECT 1, CURRENT DATE - 5 MONTHS
FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT LEVEL + 1, TEMP_DATE + 1 MONTH
FROM DATERANGE
WHERE LEVEL < 1000 AND TEMP_DATE < CURRENT DATE - 1 MONTH
) SELECT TEMP_DATE FROM DATERANGE;
임시 날짜 테이블 :
+------------+
| TEMP_DATE |
+------------+
| 2013-09-05 |
| 2013-10-05 |
| 2013-11-05 |
| 2013-12-05 |
| 2014-01-05 |
+------------+
가 어떻게이 쉬운을 달성 할 수 있습니까? DB2를 사용하고 있습니다.
경우 특정 달에 대한 데이터는 없지만 결과를 count (*) = 0으로 표시하려면 왼쪽 외부 조인을 임시 테이블이나 숫자 1-12의 테이블 변수에 출력해야합니다. 임시 테이블에서 숫자 1 - 12를 가져 와서 결합합니다. 데이터가 누락 된 달 동안 계속 행을 얻을 수 있습니다. 0의 수를 가진 –
OK 나는 감사를 본다. INSERT INTO SESSION.T_MONTHS VALUES (1);로 데이터를 삽입했습니다. 내 임시 테이블에 있지만 내 임시 테이블에서 선택 * SESSION.T_MONTHS에서 * 선택; 빈 결과 집합을 반환합니다. 내가 도대체 뭘 잘못하고있는 겁니까? – user3193317
이 문제에 대해 OLAP 기능을 사용할 수 있습니다. 그러나 나는 지금 예를 쓸 수 없다. – AngocA