我需要使用MySQL根据列值进行聚合的方法
我在拉威尔学习图表,我需要为那些迟到或准时的学生绘制每日学生出勤率的折线图。我试着编写MYSQL查询,但它不起作用 我尝试在同一个表上进行子查询,以获取日常学生的数据,我还需要7个日期,而不是完整日期,例如日期存储在数据库中为2019年9月8日,但我需要它作为日期08我需要使用MySQL根据列值进行聚合的方法,mysql,laravel,Mysql,Laravel,我在拉威尔学习图表,我需要为那些迟到或准时的学生绘制每日学生出勤率的折线图。我试着编写MYSQL查询,但它不起作用 我尝试在同一个表上进行子查询,以获取日常学生的数据,我还需要7个日期,而不是完整日期,例如日期存储在数据库中为2019年9月8日,但我需要它作为日期08 SELECT Date, COUNT(*) AS TimeStudent FROM attendance WHERE `Attendance`='OnTime' AND (SELECT COUNT(*) AS Lat
SELECT Date, COUNT(*) AS TimeStudent
FROM attendance WHERE `Attendance`='OnTime' AND (SELECT COUNT(*) AS
LateStudent FROM attendance
WHERE `Attendance`='Late'
GROUP BY `Date`
ORDER BY LateStudent DESC)
GROUP BY `Date`
ORDER BY TimeStudent DESC
但是我有
[Err]1241-操作数应包含1列
,因为在where子句之后使用日期时,我不能在子查询中再次使用它来获取日期。请任何人帮助我。这里有一种基于列值进行聚合的方法 此查询将为您提供特定日期的准时和迟到学生数
SELECT
`Date`,
DATE_FORMAT(`Date`, '%d') AS Month_Date, -- You can modify it as per your requirement
SUM(IF(`Attendance` = 'OnTime', 1, 0)) AS OnTime_Count,
SUM(IF(`Attendance` = 'Late', 1, 0)) AS Late_Count
FROM attendance
WHERE `Date` >= CURRENT_DATE - INTERVAL 7 DAY
GROUP BY `Date`;
向我们展示一些示例数据和预期输出@paul spiegel如果你知道,请写下答案好吗?@jitendra yadav你需要什么样的样本数据?我应该分享桌子的快照吗?我需要从中获取dataYup,这将是很好的,并包括预期的输出。您可以使用date_格式,同样基于预期的输出,我们可以建议您修改查询,以更简单和正确的方式获取数据。实际上,这是我尝试的正确查询。感谢@jitendra yadavook更新您的问题,这样每个人都能理解您在寻找什么。您能帮助我了解如何将每周和每月出勤的查询更改为与每日出勤相同的查询吗。提前感谢@jitendra yadavJust-do-GROUP BY-MONTHdate,因为我们在mysql中有week函数。确保更新where子句以包含要包含在计算中的日期。