[英]Codeigniter count using month?
場景是我是管理員,我要進行會話,會話表由session_id,coach_name,date(格式為Ymd)組成。 現在,我想計算每個“ MONTH”教練的總活動量。 所以我的意思是,如何在SQL查詢中獲得這種輸出。
期望的輸出是每個教練每月的活動量。
Name | No. of session this month
Coach_name1 = 13
Coach_name2 = 5
這是我當前的查詢,為我提供了教練的姓名,但我不知道每個月的獲取方法
public function getAll(){
$query = $this->db->query('SELECT DISTINCT coach_name FROM sessions);
return $query->result();
}
您必須准備如下查詢:
select
coach_name,
month(your_date_field),
count(1)
from
your_table
where
month(your_date_field) = 8
group by
coach_name, month(your_date_field)
它將返回如下記錄,
| coach_name | month(your_date_field) | count(1) |
+---------------+------------------------+------------+
| Coach_name1 | 8 | x |
| Coach_name2 | 8 | x |
| Coach_name3 | 8 | x |
+---------------+------------------------+------------+
在代碼點火器中
$this->db->select("coach_name, month(your_date_field) as month_number,count(1) as counts");
$this->db->where('month(your_date_field)',8);
$this->db->group_by('coach_name,MONTH(your_date_field)');
$query = $this->db->get('your_table');
// results
foreach ($query->result_array() as $row)
{
// do this to see array
print_r($row);
// to access individual fields
echo $row['coach_name'];
echo $row['month_number'];
echo $row['counts'];
}
使用此查詢可獲得結果。 使用mysql MONTH()從日期獲取月份號並按其分組。 您將獲得所有月度數據。
SELECT coach_name,
Count(*) AS activities
FROM sessions
WHERE Month(date) = 8 //for specfic month
GROUP BY coach_name, Month(date) // for all months
使用此查詢可根據系統日期動態獲取當前月份
SELECT coach_name,
Count(*) AS activities
FROM sessions
WHERE Month(date) = MONTH(CURRENT_DATE()) //for selecting current month.
GROUP BY coach_name
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.