SQL对于数据库中的2个字段是不同的


84

您能否在数据库表中获得2个不同字段的独特组合?如果是这样,您能否提供SQL示例。

Answers:


128

简单地说:

select distinct c1, c2 from t

要么

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

根据数据的不同,分组依据要慢于不同
噪声消除器(Noizer)2015年

5
对于那些看到的Operand should contain 1 column(s)错误,您的问题是您可能正在这样做,select distinct(c1, c2) from t并且此处不允许使用括号。那就是我到达这里的方式。
BookOfGreg

16

如果您只想从两个字段中获得不同的值,然后再将它们与其他字段一起返回,则其他字段上必须具有某种聚合(总和,最小值,最大值等),并且要区分的两列必须出现在group by子句。否则,就像Decker所说的那样。


7

您可以在SQL下面的两列中得到不同的结果:

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

5

如果您仍然只想按一列分组(如我所愿),则可以嵌套查询:

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

3

分享我的愚蠢想法:

也许我只能在c1上选择不相同,而不能在c2上选择,所以语法可能在select ([distinct] col)+哪里distinct是每一列的限定符。

但是经过深思熟虑,我发现只有一栏的区别是无稽之谈。采取以下关系:

   | A | B
__________
  1| 1 | 2
  2| 1 | 1

如果我们select (distinct A), B,那么什么是正确BA = 1

因此,distinct是的限定词statement

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.