使用WHERE子句

时间:2017-08-23 16:26:26

标签: sql sql-server

经过15年的编程,我只发了3次问题......这就是其中之一。

我有一个表,我试图根据某些列删除重复项。 我创建了3个计算列,以各种方式帮助完成此任务。

这3个计算列是

  1. DENSE_RANK() OVER为重复项集提供自己的ID
  2. COUNT(*) OVER以提供每个组中的重复数量和
  3. ROW_NUMBER() OVER为每个副本分配一个行号。
  4. 我将其放入CTE,然后从此CTE中选择以获取重复项。在当前情况下,这会产生总共40行。这是 20套重复,每组有2行。

    然后,我希望使用 CROSS APPLY 添加另一列,该列是通过连接每个集合中所有重复项的其中一列的值而创建的字符串。

    问题是我希望使用WHERE的{​​{1}}子句中的一个计算列。我知道这是不可能的。那么解决方法是什么?

    我完全难过,并尝试了我能想到的CROSS APPLY,嵌套选择等的每一个组合。

    这是理想的代码(当然不起作用):

    CTE

    示例数据: 这是前4行/ 2套:

    我无法弄清楚如何在这里正确显示表格所以我拍了一个屏幕截图: sample data

0 个答案:

没有答案