у меня есть таблица order_star_member, которая содержит users_id в качестве покупателя, createAt в качестве времени совершения транзакции покупателем и total_price_star_member в качестве суммы транзакции, i Я хочу найти покупателя из января с транзакцией> = 600000 и покупателя из января, который также совершает транзакцию> = 600000 (оба в этом месяце делают транзакцию> = 600000). января с указанием покупателя, совершившего транзакцию в январе> = 600000 и февраля с указанием покупателя, совершившего транзакцию в феврале> = 600000, после этого я использую следующий синтаксис:
select count(*) as total from (SELECT
sum(b.total_price_star_member) as total_transaction, b.users_id
FROM order_star_member b
WHERE
EXISTS (SELECT 1 FROM january d
WHERE d.buyer_id = b.users_id) AND
EXISTS (SELECT 1 FROM february a
WHERE a.buyer_id = b.users_id) AND
NOT EXISTS (SELECT 1 FROM order_star_member c
WHERE c.users_id = b.users_id AND c.createdAt < '2020-01-01') group by b.users_id having sum(b.total_price_star_member) >= 600000 order by total_transaction) inner_query;
знаете ли вы, какой точный запрос, поэтому мне не нужно снова создавать новую таблицу, как это.
пример таблицы
Январь 2020
users_id total_transaction
- 12 750000
- 13 450000
- 14 300000
февраля 2020
users_id total_transaction
- 12 650000
- 13 550000
- 14 650000
, поэтому, когда я запускаю запрос, то users_id 12 появится, потому что в феврале и j за всю историю транзакций он> 600000