MySQL - 按表中的重复值进行分组以进行计数并将输出保存在另一个表中

标签 mysql count group-by

我有一个名为 table1 的 MySQL 表,它保存页面上的设备值。该页面每 2 秒就会 ping 回一个填充表格的脚本。

表结构如下:

id
timestamp
domain
ip 
useragent

每个设备都有一个唯一的 IP 地址。在表中,我有多个条目属于同一设备。

我希望能够计算按 IP 地址分组的记录数,并将其保存在一个新表(称为 table2)中,该表具有以下结构:

id
ip
domain
useragent
count

在表1和表2中,id都是自增的。

到目前为止,我已经想出了:

SELECT   ip, COUNT(*) FROM table1 GROUP BY ip; HAVING COUNT(*) > 1

如何将输出保存到表2中?

最佳答案

您可以使用insert into .. select from构造

insert into table2(ip,
domain,
useragent,
`count`)
select ip,
domain,
useragent,
count(*) as `count`
from table1
group by ip
having `count` > 1;

关于MySQL - 按表中的重复值进行分组以进行计数并将输出保存在另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35524345/

相关文章:

mysql - 内连接 + 计数 + 分组依据

python - 如果日期在给定范围内,则从每个组中删除行

sql - 我是否比 SQL Server 更聪明,或者这是有原因的?

SQL选择并按一段时间(时间戳)分组

php - 用户登录时如何将非发布数据发布到 session 中

mysql - 当记录在 X 时间内未更新时通知用户

sql - 计算字段中唯一值的实例

php - 在mysql中将camelcase表和列名转换为snake case

while 循环内的 PHP 单个查询未在 MySQL 上运行

mysql - 计数考虑 3 列的总和