Sql 统计表中所有不同的记录
我需要在一个查询中统计表名中的所有不同记录,也不需要使用任何子查询 我的代码是Sql 统计表中所有不同的记录,sql,sql-server,Sql,Sql Server,我需要在一个查询中统计表名中的所有不同记录,也不需要使用任何子查询 我的代码是 select count ( distinct *) from table_name 它给出了一个错误: “*”附近的语法不正确 我使用的是Microsoft SQL Server如果要使用DISTINCT关键字,则需要指定要获取DISTINCT记录的列名 例如: SELECT count(DISTINCT Column-Name) FROM table_name 如果要使用DISTINCT关键字,则需要指定要
select count ( distinct *) from table_name
它给出了一个错误:
“*”附近的语法不正确
我使用的是Microsoft SQL Server如果要使用
DISTINCT
关键字,则需要指定要获取DISTINCT记录的列名
例如:
SELECT count(DISTINCT Column-Name) FROM table_name
如果要使用
DISTINCT
关键字,则需要指定要获取不同记录的列名
例如:
SELECT count(DISTINCT Column-Name) FROM table_name
试试这个-
SELECT COUNT(*)
FROM
(SELECT DISTINCT * FROM [table_name]) A
试试这个-
SELECT COUNT(*)
FROM
(SELECT DISTINCT * FROM [table_name]) A
我担心,如果您不想使用子查询,实现这一点的唯一方法是用表中列的串联替换
*
select count(distinct concat(column1, column2, ..., columnN))
from table_name
为了避免不希望出现的行为(如1和31的串联等于13和1的串联),可以添加一个合理的分隔符
select count(distinct concat(column1, '$%&£', column2, '$%&£', ..., '$%&£', columnN)
from table_name
我担心,如果您不想使用子查询,实现这一点的唯一方法是用表中列的串联替换
*
select count(distinct concat(column1, column2, ..., columnN))
from table_name
为了避免不希望出现的行为(如1和31的串联等于13和1的串联),可以添加一个合理的分隔符
select count(distinct concat(column1, '$%&£', column2, '$%&£', ..., '$%&£', columnN)
from table_name
你可以用CTE
;WITH CTE AS
(
SELECT DISTINCT * FROM TableName
)
SELECT COUNT(*)
FROM CTE
希望此查询提供您所需的信息。您可以使用CTE
;WITH CTE AS
(
SELECT DISTINCT * FROM TableName
)
SELECT COUNT(*)
FROM CTE
希望此查询提供您所需的信息。正如其他人提到的,您不能将
DISTINCT
与*
一起使用。此外,最好使用列名而不是*
,例如表的唯一键/主键
SELECT COUNT( DISTINCT id )
FROM table
正如其他人提到的,您不能将
DISTINCT
与*
一起使用。此外,最好使用列名而不是*
,例如表的唯一键/主键
SELECT COUNT( DISTINCT id )
FROM table
为什么不能使用子查询?请从无法放置的表_name*中使用select distinct count(*),您需要在其中有一个列名。这就是语法错误。为什么不能使用子查询?使用“从无法放置的表_name中选择不同的计数(*),您需要在那里有一个列名。这就是语法错误。您的示例似乎不是很清楚;)对不起,我回答时是另一条短信@Stefanozaniny你的例子似乎不是很清楚;)对不起,我回答时是另一条短信@Stefanozanii不想使用子查询。你为什么不想使用它?我不想使用子查询。你为什么不想使用它?虽然这个代码片段可能是解决方案,但确实有助于提高你文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。虽然此代码片段可能是解决方案,但确实有助于提高您文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。