Mysql 从时间戳获取图表的数据
我在几个表中有一堆数据。每行都有一个Mysql 从时间戳获取图表的数据,mysql,sql,Mysql,Sql,我在几个表中有一堆数据。每行都有一个ts列,该列是数据类型时间戳,如下所示: week1 5 week2 16 week3 19 week4 27 2013-11-20 11:20:14 我想为一年中的每一周绘制一张图表。所以我想要的结果如下: week1 5 week2 16 week3 19 week4 27 比如说。有可能用SQL实现这一点吗?我的意思是我可以用PHP脚本手动执行,但我觉得必须有一种方法可以使用SQL中的COUNT()函数来执行此操作。您可以使用week函数来获取周数:
ts
列,该列是数据类型时间戳,如下所示:
week1 5
week2 16
week3 19
week4 27
2013-11-20 11:20:14
我想为一年中的每一周绘制一张图表。所以我想要的结果如下:
week1 5
week2 16
week3 19
week4 27
比如说。有可能用SQL实现这一点吗?我的意思是我可以用PHP脚本手动执行,但我觉得必须有一种方法可以使用SQL中的COUNT()函数来执行此操作。您可以使用
week
函数来获取周数:
select week(ts),
count(*)
from your_table
group by week(ts);
或者像201719一样使用yearweek
:
select yearweek(ts),
count(*)
from your_table
group by yearweek(ts);
您可以使用
week
函数获取周数:
select week(ts),
count(*)
from your_table
group by week(ts);
或者像201719一样使用yearweek
:
select yearweek(ts),
count(*)
from your_table
group by yearweek(ts);
不太了解表结构的细节。我认为你可以做到这一点:
SELECT
WEEK(timestamp),
COUNT(*) as nbr
FROM
table
GROUP BY
WEEK(timestamp)
但是我认为在计算中也考虑一年是很好的。像这样:
SELECT
YEAR(timestamp),
WEEK(timestamp),
COUNT(*) as nbr
FROM
table
GROUP BY
YEAR(timestamp),
WEEK(timestamp)
SELECT
yearweek(timestamp),
COUNT(*) as nbr
FROM
table
GROUP BY
yearweek(timestamp)
我还认为可以在php代码中添加“week”部分
编辑
Juergen d在评论中说的是真的。您还可以使用yearweek()。像这样:
SELECT
YEAR(timestamp),
WEEK(timestamp),
COUNT(*) as nbr
FROM
table
GROUP BY
YEAR(timestamp),
WEEK(timestamp)
SELECT
yearweek(timestamp),
COUNT(*) as nbr
FROM
table
GROUP BY
yearweek(timestamp)
参考资料:
SELECT
WEEK(timestamp),
COUNT(*) as nbr
FROM
table
GROUP BY
WEEK(timestamp)
但是我认为在计算中也考虑一年是很好的。像这样:
SELECT
YEAR(timestamp),
WEEK(timestamp),
COUNT(*) as nbr
FROM
table
GROUP BY
YEAR(timestamp),
WEEK(timestamp)
SELECT
yearweek(timestamp),
COUNT(*) as nbr
FROM
table
GROUP BY
yearweek(timestamp)
我还认为可以在php代码中添加“week”部分
编辑
Juergen d在评论中说的是真的。您还可以使用yearweek()。像这样:
SELECT
YEAR(timestamp),
WEEK(timestamp),
COUNT(*) as nbr
FROM
table
GROUP BY
YEAR(timestamp),
WEEK(timestamp)
SELECT
yearweek(timestamp),
COUNT(*) as nbr
FROM
table
GROUP BY
yearweek(timestamp)
参考资料:
Select WEEK(),count(*)按周从表组中选择()
您可以在mysql中使用WEEK函数
例:
Select WEEK(),count(*)按周从表组中选择()
hi看一看hi看一看哇,我从没听说过这些功能!我知道一定有个简单的方法。非常感谢。我没有投你反对票,但出于某种原因,我得到的数据(计数列)没有增加:/201346 59//201347 44//201348 21//201349 15//201350 10
我不明白你说的“增加”是什么意思?对不起。我意识到COUNT()只计算那一周的条目。我需要它包括截至该周的所有计数,因此每周是从开始到该周的总条目数。我希望这是有道理的:哦,我从来没有听说过这些函数!我知道一定有个简单的方法。非常感谢。我没有投你反对票,但出于某种原因,我得到的数据(计数列)没有增加:/201346 59//201347 44//201348 21//201349 15//201350 10
我不明白你说的“增加”是什么意思?对不起。我意识到COUNT()只计算那一周的条目。我需要它包括截至该周的所有计数,因此每周是从开始到该周的总条目数。我希望这是有道理的:P