我有一个这样的输出表-
在这里,我想获取所有ID总数大于或等于40的ID,并按日期排序。我尝试使用有条件的方法,但是它不起作用。这就是我使用的-HAVING sum(a.amount)> = 40
该怎么办?
答案 0 :(得分:0)
尝试使用子查询:
select tablename.* from tablename
inner join
(select id, sum(amount) from tablename
group by id
having sum(amount)>=40)a
tablename.id=a.id
order by appl_date
答案 1 :(得分:0)
您似乎想要窗口功能:
select t.*
from (select t.*, sum(amount) over (partition by appl_date, valid_from) as totalamount
from table t
) t
where totalamount >= 40;
答案 2 :(得分:0)
如果我假设“ id”表示application_id
,并且您的表中有给定application_id
的多行,那么您可以只使用聚合和having
。
您不清楚“按日期排序”是什么意思,但是您可以这样做:
select application_id, sum(amount)
from t
group by application_id
having sum(amount) >= 40
order by min(appl_date) asc;
答案 3 :(得分:0)
我认为您需要澄清一下应用程序ID是否唯一或它们是否可以重复重复。下面的查询将以任何一种方式工作,但是如果您不需要开销(如果值是唯一的),则可以使用更简单的方法。
我还假设这是一个sql server数据库。
seekBarValue / (200/60)