sql - 如何将值列设置为值行?
解决方案
SQL 表表示无序集。您的表没有排序,因此您可以使用min()
and max()
:
select name, min(value) as value1, max(value) as value2
from t
group by name;
更通用的方法使用条件聚合:
select name,
max(case when seqnum = 1 then value end) as value_1,
max(case when seqnum = 2 then value end) as value_2,
max(case when seqnum = 3 then value end) as value_3
from (select t.*,
row_number() over (partition by name order by name) as seqnum
from t
) t
group by name;
如果您希望值按特定顺序排列,请更改order by
子句。
推荐阅读
- qt - 在鼠标区域无法触发 qml 中的 java 脚本功能
- javascript - 在 THREE.js 中绘制 3d 边界框
- lucene - MultiFieldQueryParser 模糊搜索
- android - 在 Redmi Note 8 中使用 WIFI 时没有触发警报管理器?
- kubernetes - kubernetes 主节点未就绪 | 无法注册节点“node-server”,被禁止
- codenameone - 为什么我的代号为 Android 调试构建 api 工作但发布构建崩溃或行为异常?
- javascript - Javascript getComputedStyle - 复制对象而不引用
- ios - ViewController 中的滚动效果
- css - flex:1 不滚动高度过大的内部 div
- c# - 在某个进程完成后,如何从控制台自动触发 Xunit 测试?