用于分析字符串的窗口函数

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

this is a sample database

因此,当记录具有相同的 VAR、相同的组但不同的 SalesPrice 时:我需要将其注释为“需要定义” 我试图使用窗口函数但无法成功。 任何帮助表示赞赏 提前非常感谢

我尝试使用窗口函数并添加额外的列,但它只是没有产生任何有效的结果。

sql sql-server string sum window-functions
1个回答
0
投票

正如@siggemannen 在评论中所建议的,您可以使用

MIN()
MAX()
窗口函数。如果组内的最小值与最大值不同,则标记它:

SELECT *, CASE WHEN MAX(salesprice) OVER (PARTITION BY Var, [Group]) <> MIN(salesprice) OVER (PARTITION BY Var, [Group])
               THEN 'need to define' ELSE '' 
          END AS Comment
FROM mytable
WINDOW win AS (PARTITION BY Var, [Group])
ORDER BY ID

如果您使用 SQL SERVER 2022+,则使用 WINDOW 子句定义一次窗口并在查询中多次引用它,这将保证所有窗口函数对数据使用相同的单次传递:

SELECT *, CASE WHEN max(salesprice) OVER win <> MIN(salesprice) OVER win
               THEN 'need to define' ELSE '' 
          END 
FROM mytable
WINDOW win AS (PARTITION BY Var, [Group])
ORDER BY ID
© www.soinside.com 2019 - 2024. All rights reserved.