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

Apa sintaks yang benar untuk mempartisi dalam SQL?

Jumlah kumulatif menggunakan UDV:

select
dateOfCheckup,
duration,

-- use intermediate variable @cur_dur for not calculate this value twice
@cur_dur := ((case when duration like '% hour%' then substring_index(duration, ' hour', 1) * 60 else 0 end) +
(case when duration like '%min%' then substring_index(substring_index(duration, ' min', 1), ' ', -1) + 0 else 0 end)) as minutes,

-- check does current @year_month is equal to previous, continue or restart @cum_sum
CASE WHEN @year_month = date_format(dateOfCheckup, '%Y-%m')
     THEN @cum_sum := @cum_sum + @cur_dur
     ELSE @cum_sum := @cur_dur
     END total,

-- store current @year_month for to use with next row
@year_month := date_format(dateOfCheckup, '%Y-%m') monthOfCheckup

from patient, 

-- initialize variables which will be used
(SELECT @year_month:='', @cum_sum:=0, @cur_dur:=0) variables

-- the rows must be processed in definite order
ORDER BY dateOfCheckup

biola

Urutan kolom keluaran sangat penting (perhitungan dalam kolom keluaran dalam satu baris dilakukan secara ketat sesuai urutan penulisannya). Tapi tidak masalah jika contoh ini digunakan sebagai subquery atau data output diakses dengan nama kolom.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan IN dengan subquery tidak menggunakan indeks

  2. Format tanggal dan klarifikasi SQL Query

  3. Apakah sebaiknya menggunakan MySQL dan Neo4j bersama-sama?

  4. Operator MINUS di MySQL?

  5. memahami tip panah dalam diagram EER MySQL Workbench