我想在蜂巢中使用group by查找计数(不同的列名)。 我的输入是:
name id
a 2
a 3
a 4
b 1
c 4
c 4
d 7
d 9
我的预期输出是
name count
a 3
b 1
c 1
d 2
可以告诉我如何在不使用分组方式的情况下实现此目标。请帮助
答案 0 :(得分:2)
没有显式group by
的规范解决方案与select
的区别在于窗口函数:
select distinct name, count(distinct id) over (partition by name)
from t;
对于您而言,我强烈建议您使用group by
版本:
select name, count(distinct id)
from t
group by name;
答案 1 :(得分:0)
您可以使用子查询:
select distinct t.name,
(select count(distinct id) from table t1 where t1.name = t.name) as count
from table t;
但是,GROUP BY
确实是执行此操作的合适方法。
答案 2 :(得分:0)
只需将count
聚合函数与distinct
关键字一起使用
select name,count(distinct id) as cnt from table
group by name