Mysql 按列中的唯一值获取计数
我有这样一个模式:Mysql 按列中的唯一值获取计数,mysql,sql,Mysql,Sql,我有这样一个模式:(父、子、项、频率) 同一父项可以有多个子项,不同的子项可以有重复频率相同的重复项。e、 g PA CA IA FA PA CB IA FA PA CB IB FB 请注意,CA和CB都有一个公共项 所以,现在我想要所有不同的双亲以及频率之和。e、 g.对于上表,答案为PA(FA+FB)。(注:非2*FA+FB) 我尝试了下面的SQL查询,但得到了2*FA+FB SELECT distinct [parent], sum(frequency
(父、子、项、频率)
同一父项可以有多个子项,不同的子项可以有重复频率相同的重复项。e、 g
PA CA IA FA
PA CB IA FA
PA CB IB FB
请注意,CA和CB都有一个公共项
所以,现在我想要所有不同的双亲以及频率之和。e、 g.对于上表,答案为PA(FA+FB)。(注:非2*FA+FB)
我尝试了下面的SQL查询,但得到了2*FA+FB
SELECT distinct [parent], sum(frequency) as freq
FROM [sampleDB].[dbo].[sampleTable]
group by [parent]
order by freq DESC
这是有意义的,因为distinct在父级上,而不是在查询上。注意到错误,然后我试着
SELECT distinct [parent], sum(frequency from (Select distinct [item], [frequency])) as freq
FROM [sampleDB].[dbo].[sampleTable]
group by [parent]
order by freq DESC
但这会造成语法错误。正确的查询应该是什么?尝试以下操作:
SELECT parent, sum(frequency) FROM (SELECT DISTINCT parent, frequency FROM table_name) GROUP BY parent
也许你需要这个:
SELECT parent, SUM(frequency) AS freq
FROM (SELECT DISTINCT parent, item, frequency FROM sampleTable) AS t
GROUP BY parent
ORDER BY freq DESC
如果我理解正确,您希望首先在父级/项目级进行汇总,然后对频率进行汇总:
select parent, sum(frequency)
from (select distinct parent, item, frequency
from sampletable st
) st
group by parent;
您能给我们展示一个您期望的示例结果集吗?是的,正如问题中给出的一样。对于给定的表,我需要将结果集设置为
PA,(FA+FB)
,因为PA实际上有两个项,它们的频率总和为FA+FB。为什么要在mysql下标记它?