Php MySQL按天分组,然后显示分组结果中的日期
所以我有一大堆选票进入投票系统。我想显示我在任何一天有多少票。但我还想显示每天的票数,并说出投票日期,即2012年6月5日的24k票,2012年6月6日的27k票Php MySQL按天分组,然后显示分组结果中的日期,php,mysql,Php,Mysql,所以我有一大堆选票进入投票系统。我想显示我在任何一天有多少票。但我还想显示每天的票数,并说出投票日期,即2012年6月5日的24k票,2012年6月6日的27k票 SELECT count(*) AS count FROM results GROUP BY DAY(datesubmitted), YEAR(datesubmitted), MONTH(datesubmitted) ORDER BY DAY(datesubmitted) DESC, YEAR(datesubmitted) DE
SELECT count(*) AS count
FROM results
GROUP BY DAY(datesubmitted), YEAR(datesubmitted), MONTH(datesubmitted)
ORDER BY DAY(datesubmitted) DESC, YEAR(datesubmitted) DESC, MONTH(datesubmitted) DESC
是我的问题,我尝试添加如下内容
日(自上次提交日期起)作为订单日
但这只是抛出了一个空值,我觉得这很有趣,因为我预计查询会失败,因为没有任何外部对象。特定日期的投票数:
SELECT COUNT(*) AS total
FROM results
WHERE datesubmitted BETWEEN @dateMin AND @dateMax
每一天的投票数:
SELECT COUNT(*) AS total, DATE(datesubmitted) AS day
FROM results
GROUP BY DATE(datesubmitted)
ORDER BY DATE(datesubmitted) DESC
再次更新所以刚刚看到了一个新的答案,但对我来说,我是如何让它工作的:
SELECT count(*) AS count, DAY(datesubmitted) AS newday,
YEAR(datesubmitted) as newyear ,MONTH(datesubmitted) as newmonth
FROM results
GROUP BY DAY(datesubmitted), YEAR(datesubmitted), MONTH(datesubmitted)
ORDER BY YEAR(datesubmitted) DESC, MONTH(datesubmitted) DESC, DAY(datesubmitted) DESC
通过这种方式,我可以正确地获得年、月、日的正确顺序,并显示日期。我可以把它们收集起来,但那是另一天的事。你为什么不干脆
按日期分组?此外,如果它遵循与GROUP BY相同的条件,则无需按排序。您的初始sql查询仅输出“count”。也许你必须包括日()、年()和月()才能得到输出。真的很好,干杯。奇怪的是,我以为我做了这件事,但遗憾的是没有。。。加上我的排序意味着我没有首先得到最新的结果。添加了答案,但得到答案的是你:)酷,很高兴你找到了答案。这将在查询中将每个投票分组为单独的结果。我想把它们组合在一起,显示任何一天的总票数。但是感谢您的反馈:Dcheer fella,第一个查询仍然没有返回任何内容^^^^^^^,显然后面的查询是:)@JamieHutber@dateMin和@dateMax
是sql参数,如果您不知道如何使用它们,那么只需将其更改为'05/06/12'和'05/06/12 23:59:59'
(使用服务器区域设置日期格式)-如果那天没有记录,它可能不会返回任何内容,因此只需将其更改为选择IFNULL(COUNT(*),0)作为总数
@JamieHutber实际上COUNT总是返回一个值(如果没有找到行,则为0),所以忘记IFNULL-您仍然有问题吗?对于datesubmitted
列,请查看我答案上的注释,你是对的,MySQL在分组时也会排序,但其他数据库不会排序(也不应该,它会降低性能),所以它只是为了完整性而存在的。正如前面所述,原因是我希望按天分组,你的方式将按每秒分组。显然,这不是一整天的投票哦,但是你可以按日期分组(datesubmitted)。