Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

SQL Dapatkan seluruh baris berdasarkan nilai minimum kolom yang dihitung

Kueri Di Bawah berfungsi, tetapi lebih baik mempertimbangkan untuk mengganti status kolom dengan status_code dengan kode, dan memiliki tabel terpisah status(status_code,description) {denormalisasi}

Dan pengindeksan (term_id,statUs_code ).

dengan ini, kita bisa bergabung sendiri. Alih-alih membuat tampilan seperti ini.

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. Sisipan MySQL lambat

  2. MySQL mengoptimalkan kecepatan INSERT diperlambat karena indeks

  3. Bantuan dengan SELECT rekursif

  4. Mysql:Tukar data untuk baris yang berbeda

  5. Kesalahan Pemotongan Data MySQL