在 Postgresql 中不重复计数
Counting without duplicates in Postgresql
我有一个table如下
**SP MA SL NG**
jame j001 1 20200715
jame j001 -1 20200715
jame j001 1 20200715
pink p002 12 20200720
pink p002 -3 20200720
pink p002 12 20200721
我正在尝试计算记录,但我必须消除重复项。所以,我想要一个像
这样的结果
**SP count
jame 1
pink 2
有什么建议吗?请给我一些帮助。
谢谢!
您在寻找 count(distinct ...)
吗?
例如,如果您想要每个 sp
的列 ng
中不同值的计数:
select sp, count(distinct ng) cnt from mytable group by sp
如果要消除完全重复的记录,另一种选择是先在子查询中select distinct
:
select sp, count(*) cnt
from (select distinct sp, ma, sl, ng from mytable) t
group by sp
我有一个table如下
**SP MA SL NG**
jame j001 1 20200715
jame j001 -1 20200715
jame j001 1 20200715
pink p002 12 20200720
pink p002 -3 20200720
pink p002 12 20200721
我正在尝试计算记录,但我必须消除重复项。所以,我想要一个像
这样的结果 **SP count
jame 1
pink 2
有什么建议吗?请给我一些帮助。 谢谢!
您在寻找 count(distinct ...)
吗?
例如,如果您想要每个 sp
的列 ng
中不同值的计数:
select sp, count(distinct ng) cnt from mytable group by sp
如果要消除完全重复的记录,另一种选择是先在子查询中select distinct
:
select sp, count(*) cnt
from (select distinct sp, ma, sl, ng from mytable) t
group by sp