sql - SQL 通过替换计算总和
问题描述
所以我有这张表badges
(有点像 STO 的)
| user_id | grade |
---------------------
| 1 | bronze |
| 1 | silver |
| 2 | bronze |
| 1 | gold |
| 1 | bronze |
| 3 | gold |
| 1 | gold |
我想计算 user 的徽章点总数id 1
。每个bronze
徽章都应该等于5
, every silver
- 50
, gold
- 200
。
所以最后我需要为这个样本获得 460。
解决方案
对于特定的 user_id:
select
sum(case grade
when 'bronze' then 5
when 'silver' then 50
when 'gold' then 200
end
)
from tablename
where user_id = 1
推荐阅读
- android - 使用采样加载图像时出现 OutOfMemory 错误
- node.js - 如何在 Node.js 中循环遍历 GraphTraversal 对象?
- java - 使用带有 JavaFX 的 GluonHQ 地图在 MapLayer 上绘制点不起作用
- authentication - 我无法登录谷歌的 xamarin 项目?
- c# - C# - 从更改组合框选定项中将 SQL 数据拉到文本框/标签
- php - 当我尝试使用正文和标题发出 Post 请求时如何修复“MethodNotAllowedHttpException”(guzzle)
- javascript - 删除包含特定索引处对象的数组的问题
- .net - 如何尽快获得 Outlook DistributionList 的成员?
- sharepoint - 使用加载项使用用户输入文本修改网站集中的 JS 文件
- android - 软键盘将编辑文本隐藏在其后面