Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL删除重复项并添加其Cnt的列_Mysql_Count_Duplicates - Fatal编程技术网

MYSQL删除重复项并添加其Cnt的列

MYSQL删除重复项并添加其Cnt的列,mysql,count,duplicates,Mysql,Count,Duplicates,我有一个mysql表,有6列和数千行。我想添加另一个标题为count of reports的列。首先,应该知道此表中的某些行是相同的。它们不是完全重复的,而是具有相同精确值的单独实例。所以我想做的是将所有重复的行折叠成一行,并将这些重复行的计数加上“原始”添加到相邻的“报告计数”列中。因此,只有该行的任何行的相邻报告计数值均为1。我该怎么办呢。在这个查询中,我的表名是company,数据库是companys,六个初始列名是seller、one、two、three、four和types 下面的查询

我有一个mysql表,有6列和数千行。我想添加另一个标题为count of reports的列。首先,应该知道此表中的某些行是相同的。它们不是完全重复的,而是具有相同精确值的单独实例。所以我想做的是将所有重复的行折叠成一行,并将这些重复行的计数加上“原始”添加到相邻的“报告计数”列中。因此,只有该行的任何行的相邻报告计数值均为1。我该怎么办呢。在这个查询中,我的表名是company,数据库是companys,六个初始列名是seller、one、two、three、four和types

下面的查询给出了整个表,包含六列和大约两千行

select seller, IFNULL(one,""), IFNULL(two,""), IFNULL(three,""), 
IFNULL(four,""), types from companies.company  
order by seller, one, two, three, four, types;
我应该添加什么/如何更改它以计算表中的重复行,删除它们,并将计数添加到相邻列?

我想您只需要分组方式:

如果您确实想要修改该表,那么我建议您执行以下操作:

将上述结果选择到临时表中 截断原始表 添加计数列 将数据插入到表中
但是,我不相信您真的想更改源数据。

是否缺少where子句?按select HAVING COUNT*>1Oh yes中的所有列分组。不应该有什么地方。道歉。我会删除。这可能有效,但我如何才能获得count*列?如。。。如何计算重复行的数量?我不能分组,因为这会将行折叠成我分组的任何参数,对吗?如。。如果我按卖家分组…只有三个卖家。这不会导致问题吗?基本问题是:对于count*列,如何实际获得要放入相邻列的重复行数?@Idontknow。你的问题明确地说,所以我想做的是将所有重复的行折叠成一行,并添加这些行的计数。这就是group by所做的。我假设你引用的是问题中指定的栏目,不管你的答案是否有效。我想出来了。你的回答很好,谢谢!
select  seller, one, two, three, four, types, count(*)
from companies.company c
group by seller, one, two, three, four, types, count(*);