thử cái này. sử dụng nhóm theo với tên của danh mục. Tôi đã nhận xét mệnh đề được tạo tại như bạn chỉ định, bạn có thể bỏ ghi chú nếu bạn muốn sử dụng nó.
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;
bạn sẽ nhận thấy rằng tôi đã không sử dụng từ khóa JOIN mà thay vào đó, chỉ lọc các kết quả của truy vấn bằng cách sử dụng mệnh đề WHERE, điều này có thể dễ hiểu hơn. nếu bạn muốn tìm hiểu thêm về JOIN, hãy đây là hướng dẫn .
Đây cũng là hướng dẫn về bí danh SQL (mệnh đề AS). trên thực tế, có rất nhiều hướng dẫn khác trên trang web này cho một loạt các chủ đề SQL khác nhau không phụ thuộc vào nền tảng.
chỉnh sửa: đã sửa theo nhận xét, đã thêm hàm abs,