你能得到一个数据库表中 2 个不同字段的不同组合吗?如果是这样,您能否提供 SQL 示例。
akantro
问问题
166633 次
5 回答
130
简单地说:
select distinct c1, c2 from t
或者
select c1, c2, count(*)
from t
group by c1, c2
于 2008-10-10T20:33:58.617 回答
16
如果您只想从两个字段中获得不同的值,并返回其他字段,那么其他字段必须对它们进行某种聚合(总和、最小值、最大值等),并且您想要区分的两列必须出现在group by 子句。否则,就像德克尔所说的那样。
于 2008-10-10T20:38:56.797 回答
8
您可以通过使用以下 SQL 的两列获得不同的结果:
SELECT COUNT(*) FROM (SELECT DISTINCT c1, c2 FROM [TableEntity]) TE
于 2013-07-16T03:42:08.643 回答
5
如果您仍然只想按一列分组(如我所愿),您可以嵌套查询:
select c1, count(*) from (select distinct c1, c2 from t) group by c1
于 2013-03-12T19:56:36.610 回答
3
分享我的愚蠢想法:
也许我只能在 c1 而不是 c2 上选择 distinct,所以语法可能是select ([distinct] col)+
where distinct
is a qualifier for each column。
但想了想,我发现只有一栏的 distinct 是胡说八道。取以下关系:
| A | B
__________
1| 1 | 2
2| 1 | 1
如果是我们select (distinct A), B
,那什么是合适B
的A = 1
呢?
因此,distinct
是 a 的限定词statement
。
于 2019-03-21T12:50:38.127 回答