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

Trả lại Min () và một trường khác?

Vấn đề là thế này:bất kỳ hàm tổng hợp nào "không quan tâm" đến phần còn lại của dòng của nó Nếu nó không phải là MIN mà là SUM, thì nó sẽ dễ nhìn hơn ...

Giải pháp là một chút khó khăn, bạn nên làm điều gì đó liên quan đến THAM GIA TRÁI với một bất đẳng thức:

SELECT u.username, l.timer AS intScore, l.hashtag

FROM
 leaderboard l
 INNER JOIN users u ON u.users_id = l.users_id
 LEFT JOIN leaderboard l2 ON l.users_id = l2.users_id AND l2.timer < l.timer
WHERE
 l2. users_id IS NULL
ORDER BY intScore ASC

Ý tưởng nhận được giá trị thấp nhất bằng cách bỏ qua hàm MIN và nhận toàn bộ hàng

Lọc theo ngày (hoặc bất kỳ cột / tiêu chí nào khác cho vấn đề đó) từ bảng thành tích, sẽ yêu cầu chúng tôi lọc từng bảng mà chúng tôi sử dụng Điều quan trọng là phải lọc bảng LEFT JOINed ở điều kiện ON, nếu không, chúng tôi sẽ loại bỏ hiệu ứng lọc NULL:

SET @date0 = '2018-01-01';
SELECT u.username, l.timer AS intScore, l.hashtag

FROM
 leaderboard l
 INNER JOIN users u ON u.users_id = l.users_id
 LEFT JOIN leaderboard l2 ON l.users_id = l2.users_id AND l2.timer < l.timer AND l2.game_date >= @date0
WHERE
 l.game_date >= @date0
 l2.users_id IS NULL
ORDER BY intScore ASC

hy vọng nó sẽ giúp




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ DAYOFWEEK () - MySQL

  2. Python MySQLdb - Lỗi 1045:Quyền truy cập bị từ chối đối với người dùng

  3. doct2 và group_concat

  4. Nhóm MySQL theo khoảng thời gian trong một phạm vi ngày

  5. Đăng nhập câu lệnh PHP Prepared