首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL - COUNT() a MAX()

MySQL - COUNT() a MAX()
EN

Stack Overflow用户
提问于 2014-12-24 18:09:08
回答 2查看 54关注 0票数 0

尝试用另一列中的MAX()更新列,并计算MAX()发生的次数。我到处找过似乎我有正确的语法..。不知道问题出在哪里。

会很感激你的建议。

代码语言:javascript
复制
UPDATE `working` SET `NO_TOP_RATING` = 

(SELECT MAX(`IRECCD`), COUNT(`ID`) FROM `working_2` 
 WHERE 
 `working_2`.`ANNDATS_CONVERTED` >= DATE_SUB(`working`.`ANNDATS_CONVERTED`,INTERVAL 1 YEAR)
 AND 
 `working_2`.`ID` != `working`.`ID`
 AND 
 `working_2`.`ID` != `working`.`ID`
 AND
 `working_2`.`ESTIMID` = `working`.`ESTIMID` 
)
WHERE `working`.`ANALYST` != ''

:计算返回max()的次数的正确方法是什么?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-24 18:13:16

您正在选择2列,并试图将它们插入其中一列--这是行不通的

我想你可以通过以下方式解决这个问题:

代码语言:javascript
复制
UPDATE `working` SET `NO_TOP_RATING` = 
(SELECT COUNT(*) FROM `working_2`
 WHERE `IRECCD` = (
  select MAX(`IRECCD`) FROM `working_2`
  WHERE 
  `working_2`.`ANNDATS_CONVERTED` >= DATE_SUB(`working`.`ANNDATS_CONVERTED`,INTERVAL 1 YEAR)
  AND 
  `working_2`.`ID` != `working`.`ID`
  AND 
  `working_2`.`ID` != `working`.`ID`
  AND
  `working_2`.`ESTIMID` = `working`.`ESTIMID`
 )
)
WHERE `working`.`ANALYST` != ''
票数 0
EN

Stack Overflow用户

发布于 2014-12-24 18:57:17

我认为使用order bylimit更简单

代码语言:javascript
复制
UPDATE `working` w
    SET `NO_TOP_RATING` = (SELECT COUNT(*)
                           FROM working_2 w2
                           WHERE w2.`ANNDATS_CONVERTED` >= DATE_SUB(w.`ANNDATS_CONVERTED`, INTERVAL 1 YEAR) AND
                                 w2.`ID <> w.`ID`
                                 w2.`ESTIMID` = w.`ESTIMID`
                           GROUP BY IRECCD
                           ORDER BY IRECCD DESC
                           LIMIT 1
                          )

    WHERE w.`ANALYST` <> '';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27640734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档