如何为同一个表组合两个选择查询,在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
更新:第一个示例与我的用例不正确对应。我不得不改变它。
答案 0 :(得分:3)
在这种情况下,请使用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),但它会有效地将您需要的数据从行转移到列。