我知道select count(distinct a)
,但我最近遇到了select distinct count(a)
。选择不同计数和选择计数不同有什么区别?
我不太确定这是否有效。
如果它是一个有效的用途,你能给我一个示例代码和示例数据,这将解释我的区别。
蜂巢不允许后者。
任何线索将不胜感激!
我知道select count(distinct a)
,但我最近遇到了select distinct count(a)
。选择不同计数和选择计数不同有什么区别?
我不太确定这是否有效。
如果它是一个有效的用途,你能给我一个示例代码和示例数据,这将解释我的区别。
蜂巢不允许后者。
任何线索将不胜感激!
查询select count(distinct a)
会给你一个唯一值的数量。
尽管查询select distinct count(a)
会给你一个唯一的值计数列表。如果没有分组,它将只有一条总数。
见下例
create table t(a int)
insert into t values (1),(2),(3),(3)
select count (distinct a) from t
select distinct count (a) from t
group by a
它会给你3
的第一个查询和第二查询值1
和2
。
我想不出任何有用的情况下,你可能需要使用:
select distinct count(a)
如果查询没有group by
,那么distinct
是不正常的。无论如何,查询只返回行。如果有group by
,则聚合列应位于select
中,以标识每一行。
我的意思是,在技术上,与group by
,它将回答这样一个问题:“a
组中有多少不同的非空值”。通常,了解每个组的价值会更有用。
如果要计算不同值a
的数量,请使用count(distinct a)
。
我虽然一样。但是我不确定是否有没有分组的用例。谢谢! – samkart
谢谢@Marek。与团队合作有意义。没有它没有意义! – samkart