计算次数,出现一个数字并将其更新到不同的列

时间:2015-03-28 19:55:47

标签: mysql

我不知道如何在mysql中执行此操作,我已搜索但似乎无法找到解决方案。 , 我有一张这样的桌子。

id pid occurrence  
1  23  blank
2  23  blank
3  44  blank

基本上,对于id 1,2,出现的值应为2,对于id 3,出现的值应为1。 任何帮助,将不胜感激。我可以很容易地调用count和GROUP BY,并获得每次出现的次数,但我想在每个pid的正确位置更新列出现次数。

2 个答案:

答案 0 :(得分:2)

要获得正确的occurrence值,您可以

select pid, count(*) as occurrence
from your_table
group by pid

更新表格

update your_table t1
join 
(
    select pid, count(*) as occurrence
    from your_table
    group by pid
) t2 on t1.pid = t2.pid
set t1.occurrence = t2.occurrence

答案 1 :(得分:1)

如果您想在表格中设置值,请将updatejoin一起使用:

update table t join
       (select pid, count(*) as cnt
        from table 
        group by pid
       ) tt
       on tt.pid = t.pid
    set t.occurrence = tt.cnt;