计算重复列并更新计数器列
Posted
技术标签:
【中文标题】计算重复列并更新计数器列【英文标题】:Count duplicate columns and update the counter column 【发布时间】:2019-04-08 22:42:34 【问题描述】: 报告表列: 身份证 | ip地址 |计数 |类别我有重复的 ipaddress 条目,我想计算每个 IP 的数量和 更新每个 IP 的计数列。
我可以像这样计算重复项
SELECT ipaddress, COUNT(*) FROM report GROUP BY ipaddress HAVING COUNT(*) > 1 ORDER BY COUNT(*) DESC
输出
ipaddress 计数(*) 192.168.2.187 16 192.168.6.14 14 192.168.2.17 11 3192.168.3.6 9 192.168.2.77 8我只需要用正确的计数更新每个 ip。
【问题讨论】:
【参考方案1】:您可以在UPDATE
中JOIN
,如下所示:
UPDATE report r
JOIN (SELECT ipaddress, COUNT(*) cnt FROM report GROUP BY ipaddress) up
ON up.ipaddress = r.ipaddress
SET r.`count` = up.cnt
【讨论】:
以上是关于计算重复列并更新计数器列的主要内容,如果未能解决你的问题,请参考以下文章