gpt4 book ai didi

php - MYSQL 最大/计数/IN/日期

转载 作者:行者123 更新时间:2023-11-29 01:48:12 25 4
gpt4 key购买 nike

希望大家指教。我急于求成,希望您能提出建议。

我有一个表格,我想从带有 IN 的日期之间的内部计数中选择 MAX。

View Table

这是我尝试过但一点运气都没有的方法。

SELECT MAX(no_hits) from (SELECT count(hits) AS 'no_hits' ) FROM stats WHERE 'date' >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH AND zones_code IN('011242077793513596890', '011242077783866125432'))

所以基本上我只想为表现最好的区域返回一个 no_hits。

希望您能指出我哪里出错了。

如果你能来,谢谢你

最佳答案

您的查询是这样的:

SELECT MAX(no_hits) 
FROM (SELECT count(hits) AS 'no_hits' ) FROM stats
WHERE 'date' >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH
AND zones_code IN('011242077793513596890', '011242077783866125432')
);

您的查询存在一些问题:

  • 您在 'no_hits' 之后关闭了子查询括号。
  • 您没有为子查询提供表别名。每个派生表都必须有一个表别名。
  • 您没有关闭 DATE_SUB() 函数的括号。
  • 您使用了 COUNT(),如果您想要每个区域的总点击数,我认为您应该使用 SUM()
  • 您没有将点击的小计与每个区域相关联;您的小计是针对整个表格的。
  • 您对 'date' 使用了字符串定界符 ('') 而不是标识符定界符(即反引号)。当您要将列 date 与日期值进行比较时,您正在将文字字符串 'date' 与日期值进行比较。

@chaos 的答案中的查询很接近,但我认为你应该使用 SUM():

SELECT `zones_code`, SUM(`hits`) AS `no_hits`
FROM `stats`
WHERE `date` >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
GROUP BY `zones_code`
ORDER BY `no_hits` DESC
LIMIT 1;

结果为zone_code 011242077793513596890,共命中255次。


PS:在线提问时,请提供文本足够的代码和数据,方便大家测试。您提供了一些示例数据的屏幕截图,但没有显示表创建代码。这不如提供有效的 CREATE TABLE 语句和示例 INSERT 语句来填充它那样有用。

CREATE TABLE IF NOT EXISTS `stats` (
`id` int(11) NOT NULL,
`zones_code` char(21) default NULL,
`date` date default NULL,
`hits` int(11) default NULL,
PRIMARY KEY (`id`)
);

INSERT INTO stats VALUES
(10, '011242077793513596890', '2009-05-11', 13),
(12, '011242077793513596890', '2009-05-12',235),
(24, '011242077793513596890', '2009-05-13', 2),
(32, '011242077793513596890', '2009-05-14', 5),
(17, '011242077783866125432', '2009-05-12',165),
(22, '011242077783866125432', '2009-05-13', 2),
(30, '011242077783866125432', '2009-05-14', 5),
(19, '011242077743853330663', '2009-05-12', 61),
(20, '011242077737314753388', '2009-05-12', 54),
(28, '011242077737314753388', '2009-05-13', 7),
(36, '011242077737314753388', '2009-05-14', 31),
(14, '011242077730456603312', '2009-05-12',240),
(26, '011242077730456603312', '2009-05-13', 2),
(34, '011242077730456603312', '2009-05-14', 5);

以上是我根据您的屏幕截图必须输入的内容!

帮自己一个忙,让人们更容易帮助您。

关于php - MYSQL 最大/计数/IN/日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/864582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com