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

Изберете данни с максимален ред на датата по друго поле

DROP TABLE IF EXISTS my_table;

CREATE TABLE my_table 
(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
,reg_no CHAR(4) NOT NULL
,payment INT NOT NULL
,payday DATE NOT NULL
);

INSERT INTO my_table VALUES
(1,'S001',100,'2017/01/01'),
(2,'S001',500,'2017/02/01'),
(3,'S002',400,'2017/01/01'),
(4,'S002',1000,'2017/11/01');

SELECT x.* 
  FROM my_table x 
  JOIN 
     ( SELECT reg_no
            , MAX(payday) payday 
         FROM my_table 
        GROUP 
           BY reg_no
     ) y 
    ON y.reg_no = x.reg_no 
   AND y.payday = x.payday;
+----+--------+---------+------------+
| id | reg_no | payment | payday     |
+----+--------+---------+------------+
|  2 | S001   |     500 | 2017-02-01 |
|  4 | S002   |    1000 | 2017-11-01 |
+----+--------+---------+------------+
2 rows in set (0.01 sec)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съхраняване на йерархични данни (MySQL) за реферален маркетинг

  2. MySQL - mysqldump --routines за експортиране само на 1 съхранена процедура (по име), а не на всяка рутина

  3. Перфектен начин да използвате актуализиране/съхранение на MySQL данни без забавяне и грешка при актуализиране на статистиката

  4. Неуспешна работа за mysqld.service Вижте състоянието на systemctl mysqld.service

  5. Актуализирайте полето MYSQL само ако полето съдържа null или 0