我有一张col1,col2,年份表。我想创建一个类似的查询:
SELECT
SUM(col1-col2)
FROM table1
WHERE year = '2015'
并将查询结果设置为新列' col3'对于年份= 2016年,接下来将是(2017年):
SELECT
SUM(col1-col2)
FROM table1
WHERE year = '2015' AND year = '2016'
,年份最多时停止
答案 0 :(得分:0)
这是一个简单的group by
案例。
select year, sum(col1-col2) as col3
from table1
group by year
如果您希望将此限制为特定年份,则可以使用where
子句,但您希望or
而不是and
(一行不能包含年份= 2015年和年= 2016)
select year, sum(col1-col2) as col3
from table1
where year='2015' or year = '2016'
group by year
答案 1 :(得分:0)
完全披露我会用GROUP条款来做,这是我的思维方式的工作方式...... 但是如果他们在面试中问你,你可以在没有GROUP CLAUSE的情况下这样做吗?
以及大部分时间都是datetime列你应该有YEAR函数
select distinct YEAR(datecolumn) as 'year', sum(col1-col2) OVER() as col3
from table1
select distinct YEAR(datecolumn) as 'year', sum(col1-col2) OVER() as col3
from table1
where YEAR(datecolumn) in ('2015', '2016')
答案 2 :(得分:-2)
动态? 我想把我的结果设置为明年等等