与计数和日期时间有关的Mysql查询

时间:2015-06-19 13:47:49

标签: mysql

我有一个表'transaction',其中包含transaction_id,sender_id,amount,date_time,payee_id列。 我希望单个发件人在一天内找到sender_id对五个以上的交易。 我试过了 MySQL的> select * from transaction其中sender_id count()= 5且datedif()= 1;

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服务器上运行第二次查询