我需要使用單個查詢統計表名中的所有不同記錄,而且不使用任何子查詢。統計表中的所有不同記錄
我的代碼是
select count (distinct *) from table_name
它給出了一個錯誤:
Incorrect syntax near '*'.
我使用Microsoft SQL Server
我需要使用單個查詢統計表名中的所有不同記錄,而且不使用任何子查詢。統計表中的所有不同記錄
我的代碼是
select count (distinct *) from table_name
它給出了一個錯誤:
Incorrect syntax near '*'.
我使用Microsoft SQL Server
如果你想使用DISTINCT
關鍵字,你需要指定列名你想在哪些基地獲得不同的記錄。
例子:
SELECT count(DISTINCT Column-Name) FROM table_name
你的例子似乎沒有很明確的說明;) –
對不起,這是我回答時的另一個文本。 @StefanoZanini –
試試這個 -
SELECT COUNT(*)
FROM
(SELECT DISTINCT * FROM [table_name]) A
我不想使用子查詢。 –
爲什麼你不想使用它? – Raj
我怕,如果你不想使用子查詢,實現,唯一的辦法是用替代*
表格中的列連接
select count(distinct concat(column1, column2, ..., columnN))
from table_name
爲了避免不良行爲(如conca tenation 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
希望這個查詢給你你需要什麼。
正如其他人提到的那樣,您不能使用DISTINCT
和*
。此外,最好使用列名稱而不是*
,如表格的唯一鍵/主鍵。
SELECT COUNT(DISTINCT id)
FROM table
select distinct Name , count(Name) from TableName
group by Name
having count(Name)=1
select @@rowcount
儘管此代碼片段可能是解決方案,但[包括解釋](// meta.stackexchange.com/questions/114762/explaining-entirely-基於代碼的答案)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 – milo526
爲什麼你不能使用子查詢? – jarlh
使用從表名稱中選擇不同的計數(*) – nazark
您不能放*,您需要在那裏有一個列名稱。這是語法錯誤。 –