SQL保留解决方案

时间:2018-01-22 14:22:52

标签: sql sql-server tsql

我想知道是否有人可以帮助我。有点惭愧地问,但我想它已经到了这个地步。

是否有一种简单的方法来创建列" Beer_Sales"下面。我需要将此列添加到我已经拥有的包含store_id,category和sales

的表中
Store_id Category Sales Beer_sales
1         Beer     100  1
1         Wine     10   1
1         Spirits  5    1
2         Wine     33   0 
2         Sprits   10   0
3         Wine     30   0

基本上,如果有一排啤酒销售我需要该商店的每一条记录都有一个标志1

我可以通过嵌套查询执行此操作,但想知道是否有更简单的方法来执行此操作

由于

麦克

1 个答案:

答案 0 :(得分:4)

以下是使用Max()Over()窗口聚合函数

的一种方法
Select *,
       BeerSales = max(case when Category = 'Beer' then 1 else 0 end)Over(Partition by Store_id)
From yourtable