Мне сложно создать запрос выбора.Нужна помощь по Oracle Select Query
ПФБ, за столом и соответствующих данных:
ID DLS MATCH_STATUS LAST_UPDATE_TIME BO CH FT
1 0 0 09-07-2013 00:00:00 IT TE NA
1 1 1 09-07-2013 00:01:01 IT TE NA
2 0 0 09-07-2013 10:00:00 IP TE NA
3 0 0 09-07-2013 11:00:00 IT YT NA
3 2 2 09-07-2013 11:01:00 IT YT NA
Здесь
Match_Status 0-->Initial Record
1-->Singel Match
2-->Multi Match
Для каждой записи будет первоначальная запись с match_status 0 и последующего конечного процесс согласования другой номер, например, 1 , 2 будет обновляться.
Я пытаюсь получить записи, такие как полная запись, матч ожидания, одного матча и несколько групп матча по BO, CH и FT
Ниже ожидаемый из ГОВОРЯ:
BO CH FT TOTAL_RECORD AWAITNG_MATCH SINGLE_MATCH MULTI_MATCH
IT TE NA 1 0 1 0
IP TE NA 1 1 0 0
IT YT NA 1 0 0 2
У меня есть пытался ниже запрос:
select BO,CH,FT,sum(case when match_status=0 then 1 else 0 end) as TOTAL_RECORD,
sum(case when match_status = 0 then 1 else 0 end) as AWAITING_MATCH,
sum(case when match_status = 1 then 1 else 0 end) as SINGLE_MATCH,
sum(case when match_status = 2 then 1 else 0 end) as MULTI_MATCH from
table1 where last_update_time >= current_timestamp-1
group by BO,CH,FT;
проблема с выше запросом, awaiting_match становится населенной же, как общая запись, как я понимаю, из-за match_status = 0 Аналогично я попытался с
select BO,CH,FT,sum(case when match_status=0 then 1 else 0 end) as TOTAL_RECORD,
select (sum(case when t1.ms=0 then 1 else 0 end) from
(select max(match_status) as ms from table1 where last_update_time >= current_timestamp-1 group by id)t1))awaiting_match,
sum(case when match_status = 1 then 1 else 0 end) as SINGLE_MATCH,
sum(case when match_status = 2 then 1 else 0 end) as MULTI_MATCH from
table1 where last_update_time >= current_timestamp-1
group by BO,CH,FT;
проблемы с подходом является awaiting_match становится заселена с тем же значением для последующей строки.
Пожалуйста, помогите мне с подходящим запросом для нужного формата.
Большое спасибо.
вы бы объяснить, что делает столбцы ожидаемого результата ('TOTAL_RECORD AWAITNG_MATCH SINGLE_MATCH MULTI_MATCH') означает? – luchosrock
Его счет записи на каждом этапе. Например, запись с идентификатором 1, вставленным в таблицу, тогда его начальный статус будет 0 в статусе соответствия, который является ничем иным, как ожидающим совпадением, после согласования конца процесса последующая вставка произойдет с одна и та же запись, но другой статус соответствия позволяет говорить 1 для одиночного совпадения. и т. д. ... Итоговая запись - это не что иное, как счетчик id, ожидающий совпадение - это полный счет, чьи записи в настоящее время находятся в статусе соответствия 0 и т. д. ... указывается, как только соответствующий конец процесса и последующая вставка будут известны как последние stage –