我有一个表'transaction',其中包含transaction_id,sender_id,amount,date_time,payee_id列。 我希望单个发件人在一天内找到sender_id对五个以上的交易。 我试过了 MySQL的> select * from transaction其中sender_id count()= 5且datedif()= 1;
答案 0 :(得分:0)
我认为此查询对您有所帮助。
select sender_id, count(sender_id) as count
from `transaction`
group by sender_id, date(date_time)
having count>5
这将返回超过5个事务的sender_ids列表 如果您还需要该交易清单而不是您需要的
select t.*
from (
select sender_id, count(sender_id) as count
from `transaction`
group by sender_id, date(date_time)
having count>5
) as senders
inner join `transaction` as t on t.sender_id=senders.sender_id
PS。为了获得良好的性能,我建议在版本为5.6.10或更高版本的MySQL服务器上运行第二次查询