Я создал запрос, чтобы выяснить, сколько транзакций совершается каждым тикетом в очередях филиала.
Итак, у меня есть Tickets_table
с полями Branch
, number_of_ticket
, issue_date
и Ticket_call_time
, Ticket_End_time
(это время, когда билет перестал обслуживаться)
Transaction_table
содержит транзакции, которые совершаются в каждом филиале каждый день.Поля Transaction_Table
: Branch
, Date
и Transaction_time
.Чтобы выяснить, какие транзакции выполняются по каждому тикету, я создал запрос, который связывает две таблицы: по ветке и дате, а также по Ticket_table.Ticket_call_time<=Transaction_table.Transaction_time
и Ticket_table.Ticket_End_time>=Transaction_table.End_time
, как показано ниже:
SELECT
Transaction_table.Branch,
Tickets_table.Ticket,
Tickets_table.Date,
Transactions_Table.Transaction_Time,
Ticket_table.Ticket_call_time,
Ticket_table.Ticket_End_time,
QTicket_table.Ticket_Call_time,
Transaction_table.Transaction_code,
[Branch] & [Date] & [Ticket] AS branchdateticket
FROM
Transactions_Table
INNER JOIN
Tickets_Table
ON (Transaction_table.Branch = Ticket_table.Branch) AND
Transaction_table.Date = Ticket_table.Date AND
Ticket_table.Ticket_call_time<=Transaction_table.Transaction_time AND
Ticket_table.Ticket_End_time>=Transaction_table.End_time);
Этот запрос работает нормально.
У меня есть таблица, в которой для комбинации каждого тикета, филиала и даты были выполнены транзакции, но есть миллионы строк.Я попытался сделать еще один запрос для подсчета количества транзакций для последнего столбца branchdateticket
, который является классическим:
SELECT
branchdateticket,
count(Transaction_code)
FROM
the_query_above
GROUP BY
branchdateticket
Этот запрос занимает около одного дня.
Можете ли вы, пожалуйста, помогите мне сделать это быстрее?