SQL count(*) and distinct

前端 未结 9 2025
野趣味
野趣味 2021-02-12 11:25

Why can\'t we use count(distinct *) in SQL? As in to count all distinct rows?

9条回答
  •  抹茶落季
    2021-02-12 12:00

    You can try a CTE in Sql Server 2005

    ;WITH cte AS (
            SELECT  DISTINCT Val1,Val2, Val3
            FROM    @Table
    )
    SELECT  COUNT(1)
    FROM    cte
    

    To answer the question, From the documentation

    Specifies that all rows should be counted to return the total number of rows in a table. COUNT() takes no parameters and cannot be used with DISTINCT. COUNT() does not require an expression parameter because, by definition, it does not use information about any particular column. COUNT(*) returns the number of rows in a specified table without getting rid of duplicates. It counts each row separately. This includes rows that contain null values.

提交回复
热议问题