我有一個表格,其中包括軍費開支占國家、年份和國家/地區表格的 GDP 份額。
我正在嘗試使用以下代碼計算每個國家/地區的軍費增長:
WITH start as (
SELECT
country_id,
year,
military_spending
FROM military
WHERE year = 2013
),
end as (
SELECT
country_id,
year,
military_spending
FROM military
WHERE year = 2020
)
SELECT
s.country_id,
c.name Country,
(s.military_spending - e.military_spending) / s.military_spending *100 as growth
FROM start s
JOIN end e ON s.country_id = e.country_id
JOIN country c ON c.id = s.country_id
GROUP BY s.country_id
ORDER BY differ DESC
問題是,對于某些國家/地區,我沒有年度值,如果有,我想使用先驗值。我的想法是在我的第二個 CTE 中使用 if 陳述句,看起來像這樣:
end as (
SELECT
country_id,
year,
military_spending
FROM military
IF (year = 2020 AND military_spending > 0)
ELSE year = 2019
)
但這不起作用,我很確定這是我的 IF/ELSE 陳述句不正確。但不確定如何做到這一點。任何幫助深表感謝。
uj5u.com熱心網友回復:
SQLite 沒有 IF ELSE THEN 運算式/構造,而您可以使用
并且建議查詢的結果是:-

- 跳過的年份突出顯示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/352010.html
標籤:sqlite
