gpt4 book ai didi

mysql - 获取上周每个结果的计数摘要

转载 作者:行者123 更新时间:2023-11-29 06:04:42 25 4
gpt4 key购买 nike

我目前有给定表的前 X 个结果的列表,在给定的一天,其中“顶部”被定义为具有最高聚合计数的结果。我希望能够看到的不仅仅是该特定日期的计数,还包括它与昨天的计数以及上周计数的平均值的比较。

这是我当前的查询:

SELECT foo, bar, SUM(count) as today
FROM tablename
WHERE col1 = 'asdf' and date = '2012-08-23'
GROUP BY foo, bar
ORDER BY count desc
LIMIT 5

结果看起来像这样:

|foo        | bar        | today |
|something1 | something3 | 2345 |
|something2 | something4 | 1234 |
....

但是我想要的是这样的:

|foo        | bar        | today | yesterday | week_avg |
|something1 | something3 | 2345 | 2273 | 2193 |
|something2 | something4 | 1234 | 935 | 1001 |
....

作为奖励积分,我不介意在某种 GROUP_CONCAT 结果中包含过去 20 天的所有日期(这样我就可以轻松地用它制作迷你图)

最佳答案

您可以获取上周的所有行,然后使用条件聚合(通过 CASE expressions )仅将当天的 count 值与 count 相加昨天的值:

SELECT   foo, 
bar,
SUM(CASE WHEN date = CURDATE() THEN count ELSE 0 END) AS today,
SUM(CASE WHEN date = CURDATE() - INTERVAL 1 DAY THEN count ELSE 0 END) AS yesterday,
AVG(count) AS week_avg
FROM tablename
WHERE col1 = 'asdf' AND
date >= CURDATE() - INTERVAL 1 WEEK
GROUP BY foo,
bar
ORDER BY today DESC
LIMIT 5

最后,我们按今天的 count 值的总和进行排序,并根据该顺序选择前五个。

关于mysql - 获取上周每个结果的计数摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12098502/

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