sql查询和php脚本显示每天的平均问题
在我的问题表中,每篇文章都有时间戳(MM-DD-YYYY)。每个帖子都有一个问号,一个回复既有问号又有回复ID。我想运行一个php脚本,它将捕获所有问题(ResponseID=null的所有帖子),并显示每天有多少个问题 我希望从2010年6月1日起每天都有平均问题sql查询和php脚本显示每天的平均问题,php,mysql,Php,Mysql,在我的问题表中,每篇文章都有时间戳(MM-DD-YYYY)。每个帖子都有一个问号,一个回复既有问号又有回复ID。我想运行一个php脚本,它将捕获所有问题(ResponseID=null的所有帖子),并显示每天有多少个问题 我希望从2010年6月1日起每天都有平均问题 非常感谢你的帮助。谢谢大家! 每天都会收到这些信息,以及问题的数量: select q.myTimestamp, count(*) from questionsTable q where q.myTimeStamp >=
非常感谢你的帮助。谢谢大家! 每天都会收到这些信息,以及问题的数量:
select q.myTimestamp, count(*)
from questionsTable q
where q.myTimeStamp >= '6/1/2010'
and q.ResponseID IS NULL
group by myTimestamp
要获得平均值,您需要计算天数和问题总数。。。我可能会对MySQL进行两次查询,然后用PHP进行计算
$query1 = "select count(*) as totalCount from questionsTable where myTimestamp >= '6/1/2010' and ResponseID IS NULL";
$query2 = "select count(*) as totalDays from (select distinct myTimestamp from questionsTable where myTimestamp >= '6/1/2010' and ResponseID IS NULL) a";
$res1 = mysql_query($query1);
$res2 = mysql_query($query2);
$row1 = mysql_fetch_array($res1);
$row2 = mysql_fetch_array($res2);
$avgPostCount = ($row1['totalCount'] / $row2['totalDays']);
不是最优的,但应该有效
我做了一个假设,你不想计算没有问题的日子。。否则,可以使用mysql函数将其简化为一个查询,以获取自2010年6月1日以来的天数。这将获取每天的天数以及问题数量:
select q.myTimestamp, count(*)
from questionsTable q
where q.myTimeStamp >= '6/1/2010'
and q.ResponseID IS NULL
group by myTimestamp
SELECT
AVG(NumQuestions)
FROM
(
SELECT
COUNT(*) AS NumQuestions
FROM
Questions
WHERE
ResponseID IS NULL AND
Question_Date >= '2010-06-01'
GROUP BY
Question_Date
) AS MySubquery
要获得平均值,您需要计算天数和问题总数。。。我可能会对MySQL进行两次查询,然后用PHP进行计算
$query1 = "select count(*) as totalCount from questionsTable where myTimestamp >= '6/1/2010' and ResponseID IS NULL";
$query2 = "select count(*) as totalDays from (select distinct myTimestamp from questionsTable where myTimestamp >= '6/1/2010' and ResponseID IS NULL) a";
$res1 = mysql_query($query1);
$res2 = mysql_query($query2);
$row1 = mysql_fetch_array($res1);
$row2 = mysql_fetch_array($res2);
$avgPostCount = ($row1['totalCount'] / $row2['totalDays']);
不是最优的,但应该有效
我做了一个假设,你不想计算没有问题的日子。。否则,可以使用mysql函数将其简化为一个查询,以获取自2010年6月1日以来的天数
SELECT
AVG(NumQuestions)
FROM
(
SELECT
COUNT(*) AS NumQuestions
FROM
Questions
WHERE
ResponseID IS NULL AND
Question_Date >= '2010-06-01'
GROUP BY
Question_Date
) AS MySubquery
再想一想:这太傻了。如果你想知道从给定的一天起每天的平均问题数量,你可以只计算问题数量(简单),然后除以从那时起经过的天数。此外,如果有几天没有人提问,上述查询会给出不准确的结果
再想一想:这太傻了。如果你想知道从给定的一天起每天的平均问题数量,你可以只计算问题数量(简单),然后除以从那时起经过的天数。此外,如果有几天没有人提问,上述查询会给出不准确的结果。每天平均提问多少?每个用户?那么您想要当天的所有问题,以及其中有多少百分比的问题的ResponseID=NULL?或者只计算ResponseID为NULL的记录?另外,平均问题范围的时间跨度是多少?一周/月/年?每天平均问多少问题?每个用户?那么您想要当天的所有问题,以及其中有多少百分比的问题的ResponseID=NULL?或者只计算ResponseID为NULL的记录?另外,平均问题范围的时间跨度是多少?一周/月/年?