数据库中两个字段的SQL distinct

数据库中两个字段的SQL distinct,sql,distinct,Sql,Distinct,您能在一个数据库表中获得两个不同字段的不同组合吗?如果是这样,您可以提供SQL示例。简单地说: select distinct c1, c2 from t 或 如果只需要两个字段中的不同值,再加上返回其他字段,则其他字段必须具有某种聚合(sum、min、max等),并且需要不同值的两列必须出现在group by子句中。否则,就像Decker说的那样。如果您仍然只想按一列进行分组(如我所希望的),您可以嵌套查询: select c1, count(*) from (select distinct

您能在一个数据库表中获得两个不同字段的不同组合吗?如果是这样,您可以提供SQL示例。

简单地说:

select distinct c1, c2 from t


如果只需要两个字段中的不同值,再加上返回其他字段,则其他字段必须具有某种聚合(sum、min、max等),并且需要不同值的两列必须出现在group by子句中。否则,就像Decker说的那样。

如果您仍然只想按一列进行分组(如我所希望的),您可以嵌套查询:

select c1, count(*) from (select distinct c1, c2 from t) group by c1

您可以通过使用以下SQL获得两列不同的结果:

SELECT COUNT(*) FROM (SELECT DISTINCT c1, c2 FROM [TableEntity]) TE

分享我愚蠢的想法:

可能我只能在c1上选择distinct,而不能在c2上选择distinct,因此语法可能是
select([distinct]col)+
,其中
distinct
是每个列的限定符

但是经过思考,我发现只有一列上的是毫无意义的。以以下关系为例:

   | A | B
__________
  1| 1 | 2
  2| 1 | 1
如果我们
选择(不同的A),B
,那么
A=1
的合适
B
是什么


因此,
distinct
语句的限定符

根据数据,group by比distinct慢。对于那些看到
操作数应包含1列的操作数
错误的操作数,您的问题是您可能正在执行
从t
选择distinct(c1,c2)操作,并且此处不允许使用括号。我就是这样来到这里的。
   | A | B
__________
  1| 1 | 2
  2| 1 | 1