我有一个名为 time_on_site 的mysql列 该列存储为变量 h:m:s
目前在我的代码中我有以下内容:
foreach($db->query("SELECT country,siteID,referring_site,COUNT(country)
AS thecount,COUNT(distinct country)
FROM rotator_tracking WHERE siteID='$_GET[site]'
GROUP BY country, referring_site ORDER BY thecount ASC") as $row) {
if (isset($row['referring_site'])) {
echo '
<tr>
<td class="country" style="padding: initial;">
' . $row['referring_site'] . '
</td>';
} else {
echo '
<tr>
<td class="country" style="padding: initial;">
Unknown
</td>';
}
echo '
<td class="country_referral" style="padding: initial;">
' . $row['country'] . '
</td>';
echo '
<td class="country_referral" style="padding: initial;">
' . $row['thecount'] . '
</td>';
echo '
<td class="country_referral" style="padding: initial;">' .
$row['COUNT(distinct country)'] . '
</td>
</tr>';
}
我想弄清楚如何做的是使用time_on_site中的值添加另一个td,该td显示基于国家/地区和引荐网站分组的网站平均时间。
因此表应该循环:
推介网站:国家/地区:总访问量:唯一身份访问次数:网站平均时间
由于日期是一种可变格式,所以看起来并不是简单的并且除以总和。救命?我该怎么做?
答案 0 :(得分:0)
所以我花了很多时间试图解决这个问题。最后,解决方案相当容易。
由于格式已经是hh:mm:ss没有必要将其保存为varchar,所以我只是将类型从varchar更改为time。
之后,它几乎是标准的。SELECT SEC_TO_TIME( AVG( TIME_TO_SEC( `time_on_site` ) ) )
AS timeSum, country,siteID,referring_site,COUNT(country)
AS thecount,COUNT(distinct country)
FROM rotator_tracking
WHERE siteID=':site'
GROUP BY country, referring_site
ORDER BY thecount ASC