金額が> = 1024で、受信者に返信の番号が< = 3であるsqlが必要です。一定の金額より多い金額で合計を得る方法
ジョンソンアカウントが表示されているので、それは次の三つの転送に1112ドルを受け取っているため、ジョンソンが表示されて:512結果は
例えば
、米ドル100ドル+ 500ドル、テイラーは1ドル1024ドルを払っています。ウィリアムズは4回の取引で1200を受け取って以来、そこにはありません。
私はそれが正常に動作しない
Select recipient as account_name from transfers group by recipient
having sum(amount)>=1024 and count(amount)<=3
を試してみてください。 私はPostgreSQLを使用していますが、SQLLites構文も問題ありません。添付
そのトップ3の量に各recipient
を制限するためにrow_number()
と派生テーブルを使用して便利
create table transfers (
sender varchar(1000) not null,
recipient varchar(1000) not null,
date date not null,
amount integer not null
);
insert into transfers values('Smith','Taylor',convert(date,'2002-09-27'),'1024')
insert into transfers values('Smith','Johnson',convert(date,'2005-06-26'),'512')
insert into transfers values('Williams','Johnson',convert(date,'2010-12-17'),'100')
insert into transfers values('Williams','Johnson',convert(date,'2004-03-22'),'10')
insert into transfers values('Brown','Johnson',convert(date,'2013-03-20'),'500')
insert into transfers values('Johnson','Williams',convert(date,'2007-06-02'),'400')
insert into transfers values('Johnson','Williams',convert(date,'2005-06-26'),'400')
insert into transfers values('Johnson','Williams',convert(date,'2005-06-26'),'200')
をあなたのSQLは、人が、3つの以下で取引をしていなかったたことを意味3以下の量が1024以上であること –