sql—如何在配置单元中实现计数(distinct)而不使用group by

owfi6suc  于 2021-06-27  发布在  Hive
关注(0)|答案(3)|浏览(348)

我想在配置单元中查找不使用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

有人能告诉我如何不使用group by来实现这一点吗。请帮忙

gpfsuwkq

gpfsuwkq1#

您可以使用子查询:

select distinct t.name,
       (select count(distinct id) from table t1 where t1.name = t.name) as count
from table t;

然而, GROUP BY 这样做真的很合适。

mf98qq94

mf98qq942#

只是使用 count 聚合函数 distinct 关键字

select name,count(distinct id) as cnt from table
group by name
qnyhuwrf

qnyhuwrf3#

没有显式的正则解 group byselect 与窗口功能不同:

select distinct name, count(distinct id) over (partition by name)
from t;

就你而言,我强烈建议 group by 版本:

select name, count(distinct id)
from t
group by name;

相关问题