SQL按组查询当前行与上一行之间的差异

问题描述 投票:0回答:1

我对SQL还是很陌生。我有以下表格结构。对于给定的SITEID和给定的YEAR,我试图找到添加的“新” CLASS,即上一年不存在的CLASS。每个站点可以有多个类。

<table><tbody><tr><th>SITEID</th><th>YEAR</th><th>CLASS</th></tr><tr><td>1</td><td>2007</td><td>A</td></tr><tr><td>1</td><td>2007</td><td>B</td></tr><tr><td>1</td><td>2008</td><td>A</td></tr><tr><td>1</td><td>2008</td><td>B</td></tr><tr><td>1</td><td>2008</td><td>C</td></tr></tbody></table>

在上述情况下,我正在寻找的最终输出是:

<table><tbody><tr><th>SITEID</th><th>YEAR</th><th>CLASS</th></tr><tr><td>1</td><td>2007</td><td> </td></tr><tr><td>1</td><td>2008</td><td>C</td></tr></tbody></table>

非常感谢您的帮助。谢谢。

sql group-by subtraction
1个回答
0
投票
SELECT SITEID, YEAR, max(CLASS) AS CLASS FROM [dbo].[TestTable] GROUP BY YEAR,SITEID

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.