我正在尝试完成一项有趣的研究,并为现有的数据集添加新的特性
ID DATE LEAGUE HOME AWAY H_GOALS A_GOALS PREV_H_GOALS PREV_A_GOALS
9911 "2005-01-01" "Bundesliga 1" "Wolfsburg" "Schalke 04" 2 1 NULL NULL
9822 "2005-01-01" "Jupiler League" "Beveren" "Lokeren" 2 1 NULL NULL
9823 "2005-01-01" "Jupiler League" "Waregem" "Westerlo" 2 3 NULL NULL
9824 "2005-01-10" "Jupiler League" "Westerlo" "Beveren" 4 1 3 2
9932 "2005-01-10" "Bundesliga 1" "Bayern Munich" "Wolfsburg" 2 0 NULL 2
9933 "2005-01-10" "Bundesliga 1" "Ein Frankfurt" "Schalke 04" 0 1 NULL 1
现在,我想添加其他列,如
MATCH_GOALS
-该队在上一场比赛中进球PREV_RESULT
-上一场比赛的结果[1-赢,2-平,3-输]ALL_GOALS_IN_SEASON
-本赛季球队总进球数我对案例1的尝试不正确:
SELECT ROW_NUMBER() OVER (ORDER BY start_time DESC) AS rowno,
LEAD(m.match_score) OVER (ORDER BY start_time DESC) as MATCH_GOALS, -- #1
FROM match as m
WHERE (m.home = m.home OR m.away = m.away) #fail
ORDER BY start_time DESC
您能建议适当的窗口函数(PostgreSQL)或固定示例吗
我在
SQL Server
中测试了一个解决方案,但是我看到PostgreSQL
支持SQL Server中的所有优点(CTE、窗口函数等),所以这应该是一个好的开始您的数据结构对于direct window function appliance非常不友好,因此
CTE
以一种更容易处理的方式获得它:这允许获取以前的信息,因为团队只存在于一列中
另外,首先
CTE
计算团队在特定比赛中的结果第二个
CTE
实际上使用LAG窗口函数获取有关上一个匹配的信息设置数据:
相关问题 更多 >
编程相关推荐