0
나는 시간 추적 시스템을 만들고 있으며, 상당히 복잡한 SQL 쿼리로 고민하고있다.SUM과 GROUPBY를 포함한 SQL 쿼리
기본적으로 각 과제에 소비 된 총 시간을 포함하여 현재 작업 세션이 기록 된 특정 모듈에 대한 모든 과제 목록을 만들고 싶습니다.
지금까지 StartTime
및 EndTime
열을 비교하여 특정 작업 세션에 소요 된 총 시간을 TimeSpent
으로 계산했습니다. 그러나 나는 어떻게 작업 그룹을 AssignmentID
으로 그룹화하고 나서 SUM()
모든 TimeSpent
열을 합쳐 전체 합계를 얻는지를 이해하기 위해 고심하고있다.
여기까지 제가 작성한 것입니다.
SELECT t2.*,
SUM(TIMESTAMPDIFF(second, t1.StartTime, t1.EndTime)) AS TimeSpent
FROM work_session t1
LEFT JOIN assignment t2 ON t1.AssignmentID = t2.AssignmentID
LEFT JOIN module t3 ON t2.ModuleID = t3.ModuleID
LEFT JOIN course t4 ON t3.CourseID = t4.CourseID
WHERE t2.ModuleID = 3
GROUP BY t1.AssignmentID
하여 제공하는 것을 고려 적절한 DDL (및/또는 sqlfiddle) DE와 함께 SIRED RESULT SET. 또한 WHERE 조건은 t3을 INNER JOIN으로 렌더링합니다. OUTER JOIN을 원하면 JOIN 절로 이동하십시오. – Strawberry
이 작업을 수행하려면 group by 절에있는 select의 모든 열을 포함해야합니다. 그룹화 그룹화 그룹화 ((모든 열)) – Jaypal
@ Jaypal MySQL은 GROUP BY에 나열되지 않은 열을 선택할 수 있도록 허용하며, 해당 그룹의 값을 반환합니다. – Vatev