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

MySQL mengembalikan nilai maksimal atau nol jika satu kolom tidak memiliki nilai

Saya tidak tahu seberapa cepat itu akan tetapi saya kira itu bisa diselesaikan seperti ini:

SELECT ID, min(ORDER_DATE) AS OD,
IF(COUNT(*)=COUNT(CANCEL_DATE),max(CANCEL_DATE),NULL) AS CD 
FROM stats GROUP BY CLIENT

Saya tidak dapat mengujinya tetapi ide di balik solusi ini adalah count(cancel_date) harus menghitung semua entri bukan nilai nol dan jika sama dengan count(*) itu berarti tidak ada nilai null dan akan mengembalikan max(cancel_date) , jika tidak null.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengelompokkan Penyeimbang Beban ProxySQL Anda

  2. MySQL - mysqldump --rutin hanya mengekspor 1 prosedur tersimpan (berdasarkan nama) dan tidak setiap rutin

  3. Cara memperbaiki Illuminate\Database\QueryException:SQLSTATE[HY000] [1044] Akses ditolak untuk pengguna

  4. Pengganti fungsi UUID Versi 1 MySQL?

  5. Mengoptimalkan MySQL ORDER BY pada perhitungan yang dibagikan dengan WHERE