결과 집합이 나열된 결과 테이블이 있습니다. 각 결과 집합은 결과가 만들어진 다른 테이블로 연결됩니다.MySQL을 여러 날짜와 결과로 그룹화 합계 사례를 사용하여
나는 (CASE의를 사용하여) 모든 날짜를 가져 오기 위해 SQL을 사용하고 있지만 단 하나의 결과 범위 만 검색 할 수 있습니다.
Select
count(CASE
WHEN results.test_id IN (SELECT id
FROM `test`
WHERE `posted`
BETWEEN '2011-07-01 00:00:00'
AND '2011-07-01 23:59:59')
THEN results.test_id
ELSE NULL
END) AS "1st July"
from `results`
WHERE results.window_id = 2 and results.mark > 90;
또한 모든 범위를 가져 오지만 한 번에 하나의 날짜에만 작동 할 수있는 또 다른 SQL 쿼리가 있습니다.
SELECT
CASE
when mark > 90 then '>90%'
when mark > 80 then '>80%'
when mark > 70 then '>70%'
END as mark_results,
COUNT(*) AS count
FROM (SELECT mark from results where window_id =2) as derived
GROUP BY mark_results
ORDER BY mark_results;
내가 원하는 것은 모든 결과 범위에 대해 관련 합계를 표시하는 단일 쿼리에서 모든 것을 갖는 것입니다.
Result Range | 1st July | 2nd July | 3rd July | 4th July
>90% | 0 | 0 | 0 | 1
>80% | 1 | 2 | 1 | 1
>70% | 4 | 5 | 5 | 4
각 범위의 합계가 해당 날짜 아래에 표시됩니다.
나는 그것이 가능하다고 생각합니다.
나는 그것이 가능하지 않다고 생각합니다. 쿼리에는 여러 개의 열을 사용할 수 없습니다. - 변수를 오프셋 날짜 (첫 번째 날짜 열의 날짜)로 설정 한 다음 date_add() 함수를 사용하여 다른 열을 정의하여 쿼리를 다소 유연하게 유지하는 것이 가능해야합니다. 그러나 데이터가 전혀없는 열의 경우에도 고정 된 수의 날짜 열을 사용해야합니다. –