Mysql
 sql >> база данни >  >> RDS >> Mysql

Какъв е правилният синтаксис за разделяне в SQL

Кумулативна сума с помощта на 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

цигулка

Редът на изходните колони е критичен (изчисленията в изходните колони в ред се извършват стриктно в реда, в който са записани). Но няма значение дали този пример се използва като подзаявка или изходните данни са достъпни чрез имена на колони.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 начина за намиране на редове, които съдържат малки букви в MySQL

  2. Как мога да изпълня sql скрипт с CodeIgniter и да предам данни към него?

  3. Как да проверя настройките на InnoDB?

  4. Php - MySQL избира данни от таблица, след което актуализира същата таблица

  5. поръчайте публикация според персонализирана позиция на масива