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下标记它?