powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Странное поведение COALESCE
1 сообщений из 1, страница 1 из 1
Странное поведение COALESCE
    #40143483
Rusik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу отчёт для того, чтобы учитывать количество дней, проведенных абонентом на тарифе за прошлый месяц.
Явно задаю даты во временной таблице и в RAW_DATA вызываю функцию COALESCE. В итоге в некоторых
столбцах появляется NULL. Пробовал приводить всё к одному типу данных - разницы нет.
С учётом того, что одни данные точно ненулевые – никакого NULL быть не может.
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
with
  report_period as (
    select
      DATE(DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y-%m-01')) as start_report_date,
      DATE(LAST_DAY(DATE_SUB(NOW(), INTERVAL 1 MONTH))) as end_report_date
),
  raw_data as (
    select
      t.vg_id, t.tar_id_old, t.tar_id_new, t.rasp_time,
      rp.start_report_date, rp.end_report_date,
      COALESCE(LAG(t.rasp_time) OVER(PARTITION BY t.vg_id ORDER BY t.rasp_time), rp.start_report_date) as prev_rasp_time,
      DATE(ag.date) as ag_date,
      DAY(ag.date) as agrm_day
    from tarifs_history t
    cross join report_period rp
    inner join vgroups v on v.vg_id = t.vg_id
    inner join agreements ag on ag.agrm_id = v.agrm_id
    where t.rasp_time
      between rp.start_report_date and rp.end_report_date
    order by t.vg_id desc, t.rasp_time
)
select
  vg_id, tar_id_old, tar_id_new, rasp_time, prev_rasp_time, start_report_date,
  DATEDIFF(rasp_time, prev_rasp_time) as active_days
from raw_data
query_result_2026-05-15T05-26-54-569Z.csv
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Странное поведение COALESCE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]