下的SQL Distinct和*组合

下的SQL Distinct和*组合,sql,Sql,我知道客户所选择的国家/地区是什么 但我不明白这是什么 SELECT *, COUNT(DISTINCT Country) FROM Customers; 是的 有人能解释一下吗 使用此链接输入我询问的代码 将为您提供一行和一列,countnumber的唯一国家的名称。 我认为这不会像有人说的那样产生错误。我试过了,效果很好。它没有任何作用: create table #test (Country varchar(10), Otherthings varchar(20)) insert in

我知道客户所选择的国家/地区是什么

但我不明白这是什么

SELECT *, COUNT(DISTINCT Country) 
FROM Customers;
是的

有人能解释一下吗

使用此链接输入我询问的代码

将为您提供一行和一列,countnumber的唯一国家的名称。 我认为这不会像有人说的那样产生错误。我试过了,效果很好。

它没有任何作用:

create table #test (Country varchar(10), Otherthings varchar(20))
insert into #test(Country,Otherthings) values ('UK','Something'),('USA','Something else')

SELECT *, COUNT(DISTINCT Country) 
FROM #test
产生:

> Column '#test.Country' is invalid in the select list because it is not
> contained in either an aggregate function or the GROUP BY clause.

您可以在customer表中获得国家/地区的计数。。这里使用DISTINCT关键字来避免重复计数。示例:国家列表是印度、印度、西班牙、德国、西班牙,然后计数是3。

这很简单。第二个应该在任何合理的数据库中返回一个错误。默认情况下,即使是最新版本的MySQL也不允许使用这种语法。第二个查询是无效的SQL,再次表明W3傻瓜有多糟糕。w3schools有一些奇怪的东西。不,它不会向您提供任何行。它将简单地失败并出现错误:
> Column '#test.Country' is invalid in the select list because it is not
> contained in either an aggregate function or the GROUP BY clause.