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

mySQL Największa liczba według grupy

Generalnie ORDER BY w podzapytaniu nie ma sensu. (Działa tylko w połączeniu z FETCH FIRST/LIMIT/TOP itp.)

Rozwiązaniem jest użycie skorelowanego podzapytania w celu znalezienia najcięższej ryby dla nazwy użytkownika, lokalizacji i kombinacji gatunków w bieżącym wierszu „głównego zapytania”. Jeśli jest remis, oba wiersze zostaną zwrócone.

SELECT *
FROM entries e1
WHERE username = :user
  AND CAST(weight AS DECIMAL(9,3)) = (select max(CAST(weight AS DECIMAL(9,3)))
                                      from entries e2
                                      where e1.username = e2.username
                                        and e1.location = e2.location
                                        and e1.species = e2.species)

Zwróć uwagę, że char dla wagi jest nadal złym wyborem, ponieważ przy porównywaniu wartości musisz rzucić obie strony. Wróć do dziesiętnych w swojej tabeli!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak odbudować tablicę bez powtórzeń i innych ograniczeń?

  2. Jak uporządkować i pogrupować wyniki MySQL

  3. Użyj sphinx vs MySQL bez zapytania tekstowego

  4. MySQL - Wybierz numer wiersza rekordu

  5. Docker php:5.6-Apache Development Environment brakuje uprawnień do montowania woluminu