sql - 如何将相同 num 的 2 个值获取到 2 个单独的列
问题描述
我有这样的表:
num |type|value
--------------
1 | a | 5
1 | b | 7
3 | c | 9
2 | a | 6
2 | b | 9
并想要这种结果:
num| value (a) | value (b)
-------------------------
1 | 5 | 7
2 | 6 | 9
解决方案
您可以使用 GROUP BY 和 CASE,如下所示:
select
num,
max(case when type = 'a' then value end) as value_a,
max(case when type = 'b' then value end) as value_b
from t
group by num
推荐阅读
- r - 具有分组的数据表中多行和多列的中位数
- c# - Visual Studio 2017 - ASP.NET 对 .cshtml 的更改未反映
- php - Laravel 5.8 自定义规则 - 返回 False 很慢
- angular - 如何在不重新编译 Angular 应用程序的情况下刷新 JSON 文件?
- vb.net - 如何为标签页窗口窗体设置标签索引
- azure - 如何删除 Azure Cosmos DB 中的多个文档
- javascript - 谷歌标签管理器不向分析发送电子商务数据(标准电子商务)
- javascript - 向 PWABuilder Cache-first service worker 添加“更新可用,请刷新”提示
- batch-file - 如何接受任何文件作为输入并输出具有输入文件名的文件
- python-3.x - 如何计算滚动修剪方差/标准偏差?