使用sql计算频率

Pro*_*mer 2 mysql

我有一个MySQL表:

Col1 | Col2 
 a       A
 a       B 
 c       C
 a       B
Run Code Online (Sandbox Code Playgroud)

我想创建一个这样的表:

col1 | col2 |    freq
 a        A      0.33
 a        B      0.67
Run Code Online (Sandbox Code Playgroud)

col1是Col1中的指定项.col2是与指定项目(即a)发生的不同项目.freq列是col2中项目的出现频率.

有人能给我一个如何创建这样的查询的提示吗?非常感谢.

G M*_*ros 8

试试这个:

Select  A.Col1, A.Col2, A.Count1 * 1.0 / B.Count2 As Freq
From    (
        Select Col1, Col2, Count(*) As Count1
        From   YourTableName
        Group By Col1, Col2
        ) As A
        Inner Join (
            Select Col1, Count(*) As Count2
            From   YourTableName
            Group By Col1
            ) As B
            On A.Col1 = B.Col1
Run Code Online (Sandbox Code Playgroud)