mysql - 需要帮助从重复数据中查询最大值,按多列分组

标签 mysql sql-update inner-join having-clause

我有很多重复的数据,我试图只更新数量最多的行,按多列分组。我试过了,但没用。任何帮助,将不胜感激。谢谢

UPDATE `polls` AS `p1`
INNER JOIN (
   SELECT *
   FROM `polls`
   GROUP BY `server_id`, `product_id`, `poll_date`
   ORDER BY max(quantity)
   HAVING COUNT(*) > 1
) AS `p2`
   ON `p2`.`server_id` = `p1`.`server_id`
   AND `p2`.`product_id` = `p1`.`product_id`
   AND `p2`.`poll_date` = `p1`.`poll_date`
   SET `p1`.`updated_by` = 'admin';

最佳答案

试试这个

 ....
 INNER JOIN (
   SELECT * , max(quantity)
   FROM `polls`
   GROUP BY `server_id`, `product_id`
   ORDER BY max(quantity) desc 
 )
 ....

关于mysql - 需要帮助从重复数据中查询最大值,按多列分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21940864/

相关文章:

php - CodeIgniter Active Record 的批处理 "replace into"

mysql - 在 MySQL 中将表从 utf8 更新为 utf8mb4 是否安全?

mysql - 如何通过mysql对group进行嵌套选择

PHP MySQL/PDO 更新问题

对于单独列的每个唯一值,SQL 将列设置为等于上个月的另一列

php - 'E5V7D24M10Y2015' 中的未知列 'where clause'

MYSQL order by + group by...最快的方法?

python - 带有 OuterRef 的简单子(monad)查询

mysql - 限制mysql中的内连接

MySQL:为什么 GROUP_CONCAT 在我的多连接查询中丢失行?