Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Anzahl der Zeilen zählen und nur die letzte Zeile aus einer Tabelle erhalten

SELECT  a.*, b.numOfTakingExams
FROM    employeeExam a
        INNER JOIN
        (
            SELECT  employee_id,
                    MAX(date) max_Date,
                    COUNT(*) numOfTakingExams 
            FROM    employeeExam
            GROUP BY course_ID, employee_id
        ) b ON  a.employee_id = b.employee_id AND
                a.date = b.max_Date

Sie können den neuesten Datensatz auch nach der maximalen ID abrufen wenn es als AUTO_INCREMENT eingestellt ist , liefert die folgende Abfrage dasselbe Ergebnis wie die obige Abfrage,

SELECT  a.*, b.numOfTakingExams
FROM    employeeExam a
        INNER JOIN
        (
            SELECT  employee_id,
                    MAX(id) max_Date,
                    COUNT(*) numOfTakingExams 
            FROM    employeeExam
            GROUP BY course_ID, employee_id
        ) b ON  a.employee_id = b.employee_id AND
                a.id = b.max_Date