Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL SELECT id wiersza, w którym NAJWIĘKSZE z MAX wpisów kilku kolumn

sposobem na to byłoby przechowywanie daty w zmiennej zdefiniowanej przez użytkownika. następnie możesz go użyć, aby wyciągnąć identyfikator dla największej daty

SET @A := (SELECT GREATEST(
                     IFNULL(max(date1), 0),
                     IFNULL(max(date2), 0),
                     IFNULL(max(date3), 0)
                  ) FROM table1
           );
-- here i JOIN a select that pulls out the correct id
SELECT t.joinid, max(`date1`), max(`date2`), max(`date3`)
FROM table1
JOIN 
(   SELECT id as joinid 
    FROM table1
    WHERE @A IN -- WHERE my MAX date is in
    (
        SELECT date1 -- here the UNION is just putting all of the dates into one column to compare one date with
        UNION ALL SELECT date2
        UNION ALL SELECT date3
    )
) t -- every table must have an alias

DEMO SKRZYPŁÓW



  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:wydajne zapytanie w kolumnie zbyt długiej do indeksowania

  2. 8 najpopularniejszych baz danych

  3. Jak przechowywać wiele wartości w jednej kolumnie, gdy zużywasz mniej pamięci?

  4. Partycjonowanie MySQL:dlaczego nie zajmuje odpowiedniej partycji

  5. MySQL:Uzyskaj n-tą najwyższą wartość dla każdej grupy w tabeli