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

SQL за намиране на най-популярната категория

Опитайте тази. използвайте група по с името на категорията. Коментирах създадената клауза at, както сте посочили, можете да я декомментирате, ако искате да я използвате.

 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;

ще забележите, че не използвах ключовата дума JOIN, а вместо това филтрирах резултатите от заявката, използвайки само клаузи WHERE, които може да са по-лесни за разбиране. ако искате да научите повече за JOIN, ето урок .

Тук също има урок за SQL псевдоними (клаузата AS). всъщност има още куп уроци на този сайт за куп различни теми за SQL, които не зависят от платформата.

редактиране: коригирано според коментарите, добавена е функцията 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. Mysql заявка за динамично преобразуване на редове в колони на базата на две колони

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

  3. Как да получите стойности на редове на datagridview и да го предадете на друг формуляр, като използвате бутон в същия ред

  4. По-бързо ли е да се свържете/използвате MySQL на локален хост вместо домейн (дори ако домейнът се разрешава на същия компютър)?

  5. MySQL CONVERT_TZ()