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

SQL, aby znaleźć najpopularniejszą kategorię

Spróbuj tego. użyj group by z nazwą kategorii. skomentowałem klauzulę utworzoną w, jak określono, możesz ją odkomentować, jeśli chcesz jej użyć.

 SELECT c.name, SUM(ABS(v.item_id)) 
 FROM categories c,items i, votes v
 WHERE c.name = i.name
    AND i.item_id=v.item_id
    --AND v.created_at > #{1.week.ago}
 GROUP BY c.name 
 ORDER BY SUM(ABS(v.item_id)) DESC LIMIT 5;

zauważysz, że nie użyłem słowa kluczowego JOIN, ale zamiast tego odfiltrowałem wyniki zapytania, używając tylko klauzul WHERE, które mogą być łatwiejsze do zrozumienia. jeśli chcesz dowiedzieć się więcej o JOIN, tutaj jest samouczek .

Tutaj też znajduje się samouczek dotyczący aliasów SQL (klauzula AS). w rzeczywistości na tej stronie znajduje się więcej samouczków dotyczących różnych tematów SQL, które nie są zależne od platformy.

edytuj: naprawiono zgodnie z komentarzami, dodano funkcję abs,



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wybierz TOP X (lub dolny) procent dla wartości liczbowych w MySQL

  2. Jak naprawić wyjątek java.sql.SQLException:Nie znaleziono kolumny „id”. błąd w Spring Boot

  3. Czy wyzwalacz MySQL może symulować ograniczenie CHECK?

  4. Jak używać AJAX do przesyłania dużego pliku CSV?

  5. java.lang.IllegalStateException:próba wykonania operacji na zamkniętej fabryce EntityManagerFactory