我有具有以下值的表标号金额
ID Name Amt
1 John 5000
2 Ali 2000
3 Cath 7000
4 Tom 4000
我想找出最高金额和每笔金额之间的差额。
这在Server中很容易实现,因为查询应该如下所示
选择ID、名称、Amt、最大值( Amt )-Amt与金额不同
给出的结果
ID Name Amt Diff
1 John 5000 2000
2 Ali 2000 5000
3 Cath 7000 0
4 Tom 4000 3000
但是,当我在SQL中尝试相同的查询时,它只返回一行,最大一行
ID Name Amt Diff
3 Cath 7000 0
如何在中做到这一点
发布于 2020-09-14 18:59:07
您可以使用子查询来查找最大值,然后进行比较:
SELECT
ID,
Name,
Amt,
(SELECT MAX(Amt) FROM Amounts) - Amt AS Diff
FROM Amounts;
如果您的SQLite版本恰好支持分析函数,那么我们可以使用MAX
,如下所示:
SELECT
ID,
Name,
Amt,
MAX(Amt) OVER () - Amt AS Diff
FROM Amounts;
https://stackoverflow.com/questions/63894404
复制相似问题