// 統計一週前,不同網站的統計量
SELECT DATE_FORMAT(create_time,'%Y%m%d') as ymd, user_from AS site, COUNT(*) total FROM {$table_pop_user} WHERE user_from IN ($find_str_site) AND create_time BETWEEN SUBDATE(DATE( NOW() ),INTERVAL 6 DAY) AND NOW() GROUP BY ymd, user_from
// PHP處理sql查詢結果
$_data = array();
foreach ($data as $val) {
$_data[$val['site']][$val['ymd']] = $val['total'];
}
$site_count = $days = array();
for ($i = 6; $i >= 0; $i--) {
$days[] = $day = date('Ymd', strtotime("-{$i} day"));
foreach ($site as $_site) {
$site_count[$_site][] = isset($_data[$_site][$day]) && !empty($_data[$_site][$day]) ? $_data[$_site][$day] : 0;
}
}
既讓每個名字都只出現一次,又能夠顯示所有的名字相同的人的id呢?——使用group_concat()
1、功能:將group by產生的同一個分組中的值連線起來,返回一個字串結果。
2、語法:group_concat( [distinct] 要連線的欄位 [order by 排序欄位 asc/desc ] [separator '分隔符'] )
說明:通過使用distinct可以排除重複值;如果希望對結果中的值進行排序,可以使用order by子句;separator是一個字串值,預設為一個逗號。
本作品採用《CC 協議》,轉載必須註明作者和本文連結