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

SQL Lấy toàn bộ hàng dựa trên giá trị tối thiểu của cột được tính toán

Truy vấn bên dưới hoạt động, nhưng tốt hơn nên xem xét thay thế trạng thái cột bằng status_code với mã và có trạng thái status(status_code,description) {bất bình thường}

Và lập chỉ mục (term_id,statUs_code ).

bằng cách này, chúng ta có thể tự tham gia. Thay vào đó, hãy tạo một chế độ xem như thế này.

SELECT * FROM
(SELECT *,(CASE sample.status
                         WHEN 'Arrived' THEN 1
                         WHEN 'Active' THEN 2
                         WHEN 'Pending Approval' THEN 3
                         WHEN 'Pending Confirmation' THEN 4
                         WHEN 'Pending Manual' THEN 5
                         WHEN 'Denied' THEN 6
                         WHEN 'Canceled' THEN 7
                END) AS status_code FROM SAMPLE
  WHERE sample.term_id = 29
) my_view1,
(SELECT BED_ID,MIN(CASE sample.status
                         WHEN 'Arrived' THEN 1
                         WHEN 'Active' THEN 2
                         WHEN 'Pending Approval' THEN 3
                         WHEN 'Pending Confirmation' THEN 4
                         WHEN 'Pending Manual' THEN 5
                         WHEN 'Denied' THEN 6
                         WHEN 'Canceled' THEN 7
                END) AS status_code FROM SAMPLE
 WHERE sample.term_id = 29
 GROUP BY BED_ID
) my_view2
WHERE my_view1.bed_id = my_view2.bed_id
 AND  my_view1.status_code = my_view2.status_code



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi bảng mysql từ latin1 sang utf8

  2. VBA - nhận được lỗi 'máy chủ mysql là - chỉ đọc' nhưng chỉ xảy ra khi sử dụng RecordSet

  3. Chỉ có thể có một cột tự động

  4. sử dụng cùng một trình kích hoạt cho các bảng khác nhau

  5. MySQL so sánh now () (chỉ ngày, không phải giờ) với trường datetime