sql - 如何将两列合并为一列?PostgreSQL
问题描述
我为保龄球联赛运行了一个数据库,每周,我们都会打 2 场保龄球比赛。游戏 1 的分数被放入 game1_score 列,游戏 2 的分数被放入 game2_score 列,我得到这样的输出:
表名:player_scores
season_id|nick_name |g1_score|g2_score|
---------+------------------+--------+--------+
2|Axel | 133| 210|
2|Benjie B | 91| 163|
2|Steveball | 149| 159|
2|Shadynasty | 132| 157|
2|MatT K | 122| 151|
我正在寻找一种方法来找到最高分,无论是第 1 场还是第 2 场比赛。我的预期结果是:
season_id|nick_name |high_game|
---------+------------------+--------+
2|Axel | 210|
2|Benjie B | 163|
2|Steveball | 159|
2|Shadynasty | 157|
2|MatT K | 151|
2|Steveball | 149|
2|Axel | 133|
2|Shadynasty | 132|
2|MatT K | 122|
2|Benjie B | 91|
到目前为止,我所能做的就是从第 1 场或第 2 场比赛中获得最大值,例如:
season_id|nick_name |high_game|
---------+------------------+--------+
2|Axel | 210|
2|Benjie B | 163|
2|Steveball | 159|
2|Shadynasty | 157|
2|MatT K | 151|
有没有办法做到这一点,或者我应该将所有分数(无论是第 1 场比赛还是第 2 场比赛)插入到同一列中前进?
我正在使用 PostgreSQL 13.3。
我很感激您可以提供的任何帮助和见解,即使是尝试。太感谢了!
解决方案
以下示例对我有用
with highscores as (
select season_id, nickname, g1_score as high_game
from player_scores ps1
union
select season_id, nickname, g2_score as high_game
from player_scores ps2
)
select * from highscores order by high_game desc
推荐阅读
- python - 在 django 模板中显示带有 [] 图标的字段名称
- spring - 如何使用 Spring 限制 JSON 有效负载包含其他字段?
- asp.net-core - ASP.NET Core - 无法提供静态文件 - 仅默认
- docker - yml中的Docker-compose命令不起作用
- tensorflow - 如何定义(稀疏)可变对角张量
- bash - 使用 awk 或 sed 在文本文件中的一行中忽略反斜杠后的逗号
- java - 是否调用方法“SecurityUtils.getSubject();” 会一直打redis数据库吗?
- .net - StructureMap 拦截器和 DynamicProxy
- azure - 本地 postgreSql 到 blob 的性能调整
- c# - 我如何使用 HTML 视频标签在 asp.net 应用程序中播放 VLC 实时流媒体视频