sql - 如何编辑具有重复键的行

标签 sql sql-server sql-server-2008

我对 SQL 不是很有经验。我需要手动编辑表 [TABLE_A] 中 [COLUMN_1] 和 [COLUMN_2] 中具有相同值的行。我已经知道如何过滤表的编辑 View ,我只需要正确的查询。

例子:

   COLUMN_1 COLUMN_2 COLUMN_3
    A       100       3
    C       354       2
    A       999       3
    A       100       1
    C       255       1
    B       600       5
    B       600       5
    B       600       7

我需要查询返回第 1、4、6、7 和 8 行。因此它应该返回如下表格:

   COLUMN_1 COLUMN_2 COLUMN_3
    A       100       3
    A       100       1
    B       600       5
    B       600       5
    B       600       7

我试过谷歌搜索,这是我能得到的最接近的结果,所以这就是我现在正在做的,但这不是我需要的。

SELECT COLUMN_1, COLUMN_2, COUNT(*) AS TotalCount
  FROM TABLE_A
 GROUP BY COLUMN_1, COLUMN_2
HAVING (COUNT(*) > 1)
 ORDER BY TotalCount DESC

该查询的问题在于它不会返回每一行。它返回如下内容:

   COLUMN_1 COLUMN_2 TotalCount
    A       100        2
    B       600        3

最佳答案

您可以使用 Window functions 执行此操作-

;WITH CTE AS
(   SELECT  Column_1, 
            Column_2, 
            Column_3, 
            COUNT(*) OVER(PARTITION BY Column_1, Column_2) AS TotalDupes
    FROM    Table_A
)
SELECT  *
FROM    CTE
WHERE   TotalDupes > 1

关于sql - 如何编辑具有重复键的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12478595/

相关文章:

sql - SQL中如何查找重复记录?

sql - 我可以使用哪个 SQL 命令来查看 SQL Server 上表的结构?

sql-server - 如何仅授予对 Sql Server 数据库中单个表的读访问权限

sql - 在 MSSQL 中将每个数值增加 15%

sql - 字符串截断,ANSI_WARNINGS OFF

sql - 在 SQL Server 2008 中遇到值 1 时重置计数的正确语法是什么?

python - 将多个字符串插入到 1 个表中

sql - sql server存储过程中的多个表类型参数

mysql - 如何从 2 个 MySQL 表中进行 JOIN 到 SELECT 操作?

php - "Adaptive Server is unavailable or does not exist"从 PHP 连接到 SQL Server 时出错