Mysql
 sql >> база данни >  >> RDS >> Mysql

пребройте броя на редовете и вземете само последния ред от таблица

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

можете също да получите последния запис чрез максималния ID ако е зададено като AUTO_INCREMENT , тази заявка по-долу дава същия резултат от заявката по-горе,

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LAST_INSERT_ID() е неравен на $db->insert_id?

  2. Името на източника на данни не е намерено и не е указан драйвер по подразбиране, свързващ mysql

  3. Уникални ограничения и вмъкване или актуализиране както за MySQL, така и за SQLite

  4. Docker-compose :mysqld:Не мога да създавам/записвам във файл '/var/lib/mysql/is_writable' (Errcode:13 - Отказано разрешение)

  5. как да получите позицията на сортираните редове с помощта на mysql и php