Sql 在列表中显示重复的数据

Sql 在列表中显示重复的数据,sql,sql-server-2008,tsql,Sql,Sql Server 2008,Tsql,目标: 在表格测试中显示应删除的重复数据。 然而, 如果存在两个重复数据,例如“3412纽约”。测试表中仅应显示1行 问题: 我不知道怎么做。 请记住,这张桌子可能有一百万行 All data from the list table testing Region Category Energy ---------------------------------- 1235 Delaware candy 5 1235 Delaware candy

目标:
在表格测试中显示应删除的重复数据。
然而, 如果存在两个重复数据,例如“3412纽约”。测试表中仅应显示1行

问题:
我不知道怎么做。 请记住,这张桌子可能有一百万行

All data from the list

table testing
Region          Category    Energy
----------------------------------
1235 Delaware   candy       5
1235 Delaware   candy       5
1235 Delaware   candy       5
1235 Delaware   candy       5
1235 Delaware   candy       5
1235 Delaware   candy       5
1235 Delaware   candy       5
3125 New Jersey drink       4
3125 New Jersey drink       4
3125 New Jersey drink       4
3125 New Jersey drink       4
3125 New Jersey drink       4
3412 New York   food        3
3412 New York   food        3
3412 Washington coke        7
3412 california chips       20
3412 california chips       20
3412 california chips       20
3412 california chips       20





Requested result that should display data in table testing
Table testing
Region          Category    Energy
----------------------------------
1235 Delaware   candy       5
1235 Delaware   candy       5
1235 Delaware   candy       5
1235 Delaware   candy       5
1235 Delaware   candy       5
1235 Delaware   candy       5
3125 New Jersey drink       4
3125 New Jersey drink       4
3125 New Jersey drink       4
3125 New Jersey drink       4
3412 New York   food        3
3412 california chips       20
3412 california chips       20
3412 california chips       20
看看结果

SELECT
    Region, Category, Energy
FROM
    (
    SELECT
       Region, Category, Energy,
       ROW_NUMBER() OVER (PARTITION BY Region, Category, Energy ORDER BY Region) AS rn
    FROm
       MyTable
    ) X
WHERE
   X.rn > 1

由于没有主键,因此可以使用group by或distinct重新生成表:

select distinct Region, Category, Energy
into newt
from t

这将使您不必识别重复的行,然后再弄清楚如何删除这些行。

还有哪些列(或组合)唯一地识别一行,这是我面临的问题之一。没有小学教育。识别唯一行的唯一方法是组合所有列。如果存在重复项,则组合不是唯一的。