我正在尝试从余额表中提取每个日期的第一行。并且我正在尝试编写sql代码,但是我无法从中获得线索。
我尝试了最大,总和,分组..但没有帮助。
Date Account Balance
4/6/2019 A 90
4/5/2019 B 80
4/4/2019 C 70
4/3/2019 C 60
4/2/2019 D 80
4/1/2019 D 100
那么我该如何查询显示以下结果?
四月份的帐户余额
Account Balance
A 90
B 80
C 70
D 80
答案 0 :(得分:1)
如果您的dbms支持,请使用分析函数first_value
select Account,
FIRST_VALUE(balance) OVER (partition by Account ORDER BY date desc) AS balance
from table_name
答案 1 :(得分:0)
您可以使用sunquery作为最大日期
select account, balance
from (
select accont, balance, max(date)
from my_table
group by accont, balance
) t
答案 2 :(得分:0)
首先group by account
获得每个date
的最大值account
,然后加入表格:
select t.acount, t.balance
from tablename t inner join (
select account, max(date) maxdate
from tablename
group by account
) g on g.account = t.account and g.maxdate = t.date
答案 3 :(得分:0)
典型的方法将在 document.removeEventListener("click", remDone);
function remDone(){
taskTag.style.textDecoration = "none";
}
子句中进行过滤:
where
特定数据库可能有其他方法可以解决此问题。上面的代码通常具有很好的性能,特别是在select b.*
from balances b
where b.date = (select max(b2.date)
from balances b2
where b2.account = b.account and
b2.date >= '2019-04-01' and
b2.date < '2019-05-01'
);
上具有索引。