计算每个元素 SQL
Calculate for each element SQL
我需要对我的数据集执行一个简单的计算:
refalt
AA
AT
AC
...
我使用这个 SQL 语句来检索我的信息:
select
refalt,
count(*) as Total,
((
select
count(*)
from ft_variant
where refalt IN ('AC','AT', 'AA')
)::numeric --Number of times that a couple is in
/
(
select count(*)
from ft_variant
))as Frequency --Divided by total umber of elements
from ft_variant
group by refalt;
除了一件事,我的成绩还不错:
Refalt Total Frequency
AC 131682 0.12
AT 149385 0.12
AA 55841 0.12
频率仅指AA,我想计算每对夫妇的频率。
结果应该是:
Refalt Total Frequency
AC 131682 0.20
AT 149385 0.68
AA 55841 0.12
有点不对劲,我想不通。
你把事情搞得太复杂了:
select refalt,
count(*) as total,
count(*)::numeric / (select count(*) from ft_variant) as frequency
from ft_variant
group by refalt
如果您想将其限制为 'AC','AT', 'AA'
,您可以将其添加到 where
子句中。
您正在计算 'AC' + 'AT' + 'AA' 在 table 中的百分比。你想计算你显示的一个 refalt 的百分比。
可能:
select
refalt,
count(*) as total,
count(*)::numeric / sum(count(*)) over () as frequency
from ft_variant
where refalt in ('AC', 'AT', 'AA')
group by refalt;
这只会查看 'AC'、'AT' 和 'AA' 记录,并为您提供每次 refalt 的计数及其在该组中的百分比。
我需要对我的数据集执行一个简单的计算:
refalt
AA
AT
AC
...
我使用这个 SQL 语句来检索我的信息:
select
refalt,
count(*) as Total,
((
select
count(*)
from ft_variant
where refalt IN ('AC','AT', 'AA')
)::numeric --Number of times that a couple is in
/
(
select count(*)
from ft_variant
))as Frequency --Divided by total umber of elements
from ft_variant
group by refalt;
除了一件事,我的成绩还不错:
Refalt Total Frequency
AC 131682 0.12
AT 149385 0.12
AA 55841 0.12
频率仅指AA,我想计算每对夫妇的频率。
结果应该是:
Refalt Total Frequency
AC 131682 0.20
AT 149385 0.68
AA 55841 0.12
有点不对劲,我想不通。
你把事情搞得太复杂了:
select refalt,
count(*) as total,
count(*)::numeric / (select count(*) from ft_variant) as frequency
from ft_variant
group by refalt
如果您想将其限制为 'AC','AT', 'AA'
,您可以将其添加到 where
子句中。
您正在计算 'AC' + 'AT' + 'AA' 在 table 中的百分比。你想计算你显示的一个 refalt 的百分比。
可能:
select
refalt,
count(*) as total,
count(*)::numeric / sum(count(*)) over () as frequency
from ft_variant
where refalt in ('AC', 'AT', 'AA')
group by refalt;
这只会查看 'AC'、'AT' 和 'AA' 记录,并为您提供每次 refalt 的计数及其在该组中的百分比。