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

Получаване на MySQL група чрез заявка за показване на реда в тази група с най-висока стойност

Използвайте:

  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 няма функционалност за анализ/класиране/прозорци, но това класира рецензиите, като най-новите са отбелязани с 1. Това е на базата на книга...

Изложих датата на прегледа, за да подредя най-късно от тези, които са най-късни за книга...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Neo4j - Създайте възел с помощта на Cypher

  2. mysql заявка за получаване на основния родител

  3. Хибернация на mysql čć

  4. индекс на url или хеширане, като се има предвид RAM

  5. MySQL оптимизация на огромна таблица