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

Pobieranie grupy MySQL przez zapytanie, aby wyświetlić wiersz w tej grupie o najwyższej wartości

Użyj:

  SELECT x.book_title,
         x.user_name
    FROM (SELECT b.book_title,
                 u.user_name,
                 br.review_date,
                 CASE
                   WHEN @book = b.book_title THEN @rownum := @rownum + 1
                   ELSE @rownum := 1
                 END AS rank,
                 @book := b.book_title
            FROM BOOKS b
            JOIN BOOK_REVIEWS br ON br.book_id = b.book_id
            JOIN USERS u ON u.user_id = br.user_id
            JOIN (SELECT @rownum := 0, @book := '') r
        ORDER BY b.book_title, br.review_date DESC) x
   WHERE x.rank = 1
ORDER BY x.review_date DESC
   LIMIT 30

MySQL nie ma funkcji analitycznej/rankingowej/okienkowej, ale to klasyfikuje recenzje, w których najnowsza jest oznaczona jako 1. To jest na podstawie książki...

Udostępniłem datę recenzji na zamówienie najpóźniej z najpóźniejszą datą na książkę...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Użyj daty w komórce Excela w klauzuli BETWEEN w zapytaniu SQL

  2. usunąć ostatni wiersz w tabeli za pomocą zapytania sql?

  3. Zmiana wygenerowanej nazwy klucza obcego w Hibernate

  4. PHP — rygorystyczne standardy:tylko zmienne powinny być przekazywane przez referencję

  5. SUMA(DISTINCT) na podstawie innych kolumn