amazon-web-services - Redshift - 根据标准在不同的列中返回不同的结果
问题描述
我想查询一个表格,我将在其中获取玩家玩过的所有游戏以及他们下注的金额。
所以记录会是这样的:
Playerid, Date, Game, GameCategoryId, Bet
我希望结果与此类似:
Playerid CategoryId1Bet CategoryId2Bet CategoryId3Bet
我将拥有所有不同类别的所有球员和所有最好的球员。
select playerid,
case when GameCategoryId = 1 then sum(Bet) end as CategoryId1Bet,
case when GameCategoryId = 2 then sum(Bet) end as CategoryId2Bet,
case when GameCategoryId = 3 then sum(Bet) end as CategoryId3Bet
from playertable
group by playerid
order by playerid
但是,这不起作用,它要求我按 gamecategoryid 分组
解决方案
尝试这个:
select playerid,
SUM(CASE WHEN GameCategoryId = 1 THEN Bet END) as CategoryId1Bet,
SUM(CASE WHEN GameCategoryId = 2 THEN Bet END) as CategoryId2Bet,
SUM(CASE WHEN GameCategoryId = 3 THEN Bet END) as CategoryId3Bet
FROM playertable
GROUP BY playerid
ORDER BY playerid
推荐阅读
- ansible - ansible删除远程服务器上的文件
- ruby-on-rails - 如何在 sidekiq 启动时创建连接池以支持已处理的浏览器?
- r - 防止在 RMarkdown 中评估 BASH 块
- javascript - 从输入中解开文本字段的图标单击启用
- javascript - 将 Excel 工作表导入 ASP.NET Core Razor 页面后如何保存记录
- android - Android Exoplayer AdaptiveTrackSelection 需要以高质量开始视频
- java - 二进制搜索算法检查整数是否包含在数组中
- c# - 如何从 VSTS Web 挂钩中读取事件数据信息
- excel - 需要在excel中合并3列
- javascript - 打印窗口不显示