Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

làm thế nào để có được các hàng riêng biệt với giá trị tối đa

SELECT id, authorId, answer, votes
FROM (  SELECT id, authorId, answer, votes
        FROM answers
        ORDER BY votes DESC) AS h
GROUP BY authorId

Thủ thuật nhỏ gọn gàng này được xây dựng dựa trên GROUP BY để truy xuất hàng đầu tiên của mỗi trường hợp. Thông thường đây là theo mặc định ORDER BY id ASC , nhưng thông qua truy vấn phụ này, hàng đầu tiên trong mỗi authorId với votes cao nhất .

Lưu ý: Như đã đề cập bởi Iain Elder, giải pháp này không hoạt động với ONLY_FULL_GROUP_BY hoạt động và chỉ hoạt động trong MySQL. Giải pháp này ở một mức độ nhất định không được hỗ trợ do thiếu tài liệu xác nhận hành vi này. Nó hoạt động tốt cho tôi và luôn luôn hoạt động tốt cho tôi.

Phương pháp này vẫn hoạt động trên MySQL trên sqlfiddle mới nhất .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không tìm thấy phương pháp trong lớp

  2. mối quan hệ nhiều-nhiều giữa hai thực thể trong khởi động mùa xuân

  3. Làm cách nào để chuyển một mảng giá trị vào thủ tục đã lưu trữ của tôi?

  4. Kiểu dữ liệu tốt nhất để lưu trữ URL trong cơ sở dữ liệu MySQL là gì?

  5. Truy vấn mức độ liên quan thô trong Laravel. Làm thế nào để xử lý nó?