Duplicate result

前端 未结 6 1527
走了就别回头了
走了就别回头了 2021-01-24 06:49

I am writing a query in SQL server2005. This is returning me a duplicate rows in the result. Can i eliminate this duplication with a particular column as the key?

相关标签:
6条回答
  • 2021-01-24 07:12

    You can eliminate complete duplicate rows using the DISTINCT keyword. If there is some key column that is a duplicate but the rest of the columns are not, then you would have to use aggregate functions and a GROUP BY clause to explain to SQL Server what data you do want returned.

    0 讨论(0)
  • 2021-01-24 07:14

    If you just want one column:

    SELECT DISTINCT MyColumn FROM MyTable;
    

    If you want a variety of columns, possibly returning a maximum or sum, try grouping it:

    SELECT MyFirstColumn, MySecondColumn, MAX(SomeDate) AS MaxDate, SUM(Amount) AS TotalAmount 
    FROM MyTable 
    GROUP BY MyFirstColumn, MySecondColumn;
    
    0 讨论(0)
  • 2021-01-24 07:14

    As you have pointed out in the comments, you are using a stored procedure. One way to handle this case is to create a temporary table which you populate using the stored procedure. Then select the results from the temporary table and prune the duplicates with either SELECT DISTINCT or GROUP BY.

    0 讨论(0)
  • 2021-01-24 07:22

    It's possible that your result contains both an associative and a numeric array.

    0 讨论(0)
  • 2021-01-24 07:24

    SELECT DISTINCT will eliminate duplicate rows.

    0 讨论(0)
  • 2021-01-24 07:29

    You can use SELECT DISTINCT to eliminate duplicates, as has been advised in other comments, and it may work well enough for now, but you may be begging for future trouble. All too frequently, if you cannot get a unique result without SELECT DISTINCT, your database model has been denormalized too far, and your queries can get bogged down by retrieving and then eliminating a large number of duplicates. (However, of course, normalizing an existing database schema is rarely trivial...)

    Without more information on the schema and the query it's impossible to tell whether SELECT DISTINCT is an acceptable workaround, or whether there simply is a better join statement.

    0 讨论(0)
提交回复
热议问题