gpt4 book ai didi

Sqlite:用两个不同的 "where"查询同一个表两次

转载 作者:行者123 更新时间:2023-12-03 15:03:02 25 4
gpt4 key购买 nike

如何组契约(Contract)一个表的两个选择查询,它们在 Sqlite 中有两个不同的位置?

我有一个超过 10k 行的表。两个示例行如下所示:

year | project | finance | flow
1990 | water | 300500 | grant
1999 | energy | 200500 | loan

我的尝试不起作用:
SELECT sum(finance), (select sum(finance) from table where flow = grant) 
FROM table where flow = loan group by year

结果应按年份分组所有结果,并在赠款列和贷款列中列出总和(预算)。
year | grant | loan
1990 | 62662 | 383983
1991 | 28928 | 278272

更新:第一个示例与我的用例不正确对应。我不得不改变它。

最佳答案

在这种情况下,使用 CASE:

 SELECT year, 
SUM(CASE WHEN flow = 'grant' THEN finance ELSE 0 END) AS grant_total,
SUM(CASE WHEN flow = 'loan' THEN finance ELSE 0 END) AS loan_total
FROM your_table
GROUP BY year

逻辑与您概述的逻辑不同(它是带有单个 WHERE 子句的单个 SELECT),但它将有效地将您需要的数据从行转移到列。

关于Sqlite:用两个不同的 "where"查询同一个表两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10238407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com