MySQL SUM with CASE按日期选择最新记录

MySQL SUM with CASE按日期选择最新记录,mysql,Mysql,我的SUM案例陈述工作正常。问题是,我有多个具有类似条件的记录,所以我想按日期选择最新的记录 SELECT SUM(CASE WHEN planning like 'Rotation%' THEN 1 ELSE 0 END + CASE WHEN assessmentanddata like 'Collects%' THEN 1 else 0 END + CASE WHEN path like 'Same%' THEN 1 else 0 END +

我的SUM案例陈述工作正常。问题是,我有多个具有类似条件的记录,所以我想按日期选择最新的记录

 SELECT 
    SUM(CASE WHEN planning like 'Rotation%' THEN 1 ELSE 0 END + 
        CASE WHEN assessmentanddata like 'Collects%' THEN 1 else 0 END +
        CASE WHEN path like 'Same%' THEN 1 else 0 END +
        CASE WHEN place like 'Move%' THEN 1 else 0 END +
        CASE WHEN pace like 'Timer%' THEN 1 else 0 END +
        CASE WHEN classroommanagement like 'Restating%' THEN 1 else 0 END +
        CASE WHEN teacherrole like 'Mini%' THEN 1 else 0 END +
        CASE WHEN studentengagement like 'Follow%' THEN 1 else 0 END +
        CASE WHEN studentcollaboration like 'Collects%' THEN 1 else 0 END +
        CASE WHEN technology like 'Technology%' THEN 1 else 0 END)  AS p1
    from ruberic where schoolId = 1 
表中的一个示例是DATE、SCHOOLID和TEACHERID这三列:

2016-12-05 1->这一记录将很好

2016-12-05 1 4->与下面的记录比较时,仅选择此项

2016-12-05 14


在我看到的基础上,我看不到date的字段名,所以假设date

它使用一个correlates子查询和一个exists语句来标识每个teacherID和school的maxdate,然后通过着色将主数据集限制在这个子集上

SELECT 
    SUM(CASE WHEN planning like 'Rotation%' THEN 1 ELSE 0 END + 
        CASE WHEN assessmentanddata like 'Collects%' THEN 1 else 0 END +
        CASE WHEN path like 'Same%' THEN 1 else 0 END +
        CASE WHEN place like 'Move%' THEN 1 else 0 END +
        CASE WHEN pace like 'Timer%' THEN 1 else 0 END +
        CASE WHEN classroommanagement like 'Restating%' THEN 1 else 0 END +
        CASE WHEN teacherrole like 'Mini%' THEN 1 else 0 END +
        CASE WHEN studentengagement like 'Follow%' THEN 1 else 0 END +
        CASE WHEN studentcollaboration like 'Collects%' THEN 1 else 0 END +
        CASE WHEN technology like 'Technology%' THEN 1 else 0 END)  AS p1
FROM
    ruberic R1
WHERE
    schoolId = 1 
    AND EXISTS (SELECT Null 
                FROM ruberic r2
                WHERE R2.SchoolID = R1.SchoolID
                  AND R2.TeacherID = R1.TeacherID
                GROUP BY SchoolID, TeacherID
                HAVING R1.Date = MAX(R2.Date) )

可能是由于一个未完成的问题导致了投票的失败。没有FROM或WHERE子句。根据我对序言的理解,这个案子主要是分散注意力。参见,例如,第一篇文章,担心编辑,错过了“from”/“where”。一件一件地处理它。如果您的起始查询有效,那么继续添加when schoolId和teacherId与WHERE子句相同。完成后,请检查关于获取最新记录的许多其他问题。如果您希望澄清,请编辑该问题。这是一个混乱的评论。谢谢你的容忍与我alttag。。。。