Mysql统计重复值不同列

标签 mysql count duplicates

我想统计parent_id和id_article的相同值,但是如果parent_id和id_article没有相同的值可以为0

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

预期输出

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

我如何实现它?

最佳答案

你可以通过做一个子句然后加入你的主查询来得到你的计数

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

关于Mysql统计重复值不同列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50715267/

相关文章:

mysql - SQL查找每个类别中长度大于其各自类别平均长度的下5部最长的电影?

Mysql查询分组名称然后划分统计然后按顺序显示?

mysql - SQL : I search the good query with select max() and select count()

python - Django:用很少的字段实例初始化表单

python - 如何在pandas中标记 'duplicated sequence'?

javascript - div 值到 jquery 或 php 变量

Mysql行转列,使用IF优化查询

mysql - Select count(*) from A update in B 超慢

r - 不区分大小写 独特 保持原样

php - pdoException不输出错误