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

mySQL Най-голям брой по група

Като цяло ORDER BY в подзаявка няма смисъл. (Прави само когато се комбинира с FETCH FIRST/LIMIT/TOP и т.н.)

Решението е да се използва корелирана подзаявка, за да се намери най-тежката риба за потребителското име, местоположението, комбинацията от видове в текущия ред на „главната заявка“. Ако резултатът е равен, и двата реда ще бъдат върнати.

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)

Имайте предвид, че char за тегло все още е лош избор, тъй като трябва да хвърляте и двете страни, когато сравнявате стойности. Върнете се към десетичния знак във вашата таблица!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка:mysqlnd не може да се свърже с MySQL 4.1+, използвайки старата несигурна автентификация

  2. MySQL срещу MongoDB 1000 четения

  3. mysql_connect грешка 500

  4. PHP PDO метод за извличане на прост списък от съответстващи елементи

  5. symfony2 динамична връзка с база данни с помощта на doctrine