Mysql count duplicate value different column

三世轮回 提交于 2019-12-06 14:42:30

问题


I want to count the same value among parent_id and id_article, but it can be 0 if there is no same value among parent_id and id_article

table:t_article
id_article      parent_id
441             0
1093            18
18              0
3141            3130
3130            0
3140            3130
3142            3130

Expected output

id_article      parent_id       Total
441             0               0
1093            18              0
18              0               1
3141            3130            0
3130            0               3
3140            3130            0
3142            3130            0

How do I make it happen?


回答1:


You can get your count by doing a sub clause and then join with your main query

select a.*, coalesce(b.cnt,0)
from t_article a
left join (
  select parent_id, sum(parent_id <> 0) cnt
  from t_article 
  group by parent_id
) b on (a.id_article = b.parent_id)

Demo



来源:https://stackoverflow.com/questions/50715267/mysql-count-duplicate-value-different-column

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!