使用 count() 输出每月和当月的总条目数

Using count() to output total entries per month as well as the month

我尝试了一些搜索,结果发现 count() 函数让我更接近我的目标,但有点停了下来。这是我的代码现在的样子:

$sql = "SELECT COUNT( * ) as Count
FROM AttendanceDB
WHERE YEAR( class_time ) =  '2015'
AND studentid = '$studentid'
AND furikae = 0
GROUP BY MONTH( class_time )";

然后我用echo $row['Count'];输出数据

这让我可以计算 2015 年每月的总行数,然后输出答案。现在我想要做的是在每一行中输出月份和总数。我可以对所有内容进行预格式化,但是有些学生 ID 的条目在一年中途开始,这意味着前几个月不会输出任何结果。

如何SELECT 同时使用数据库中的月份和计数功能?谢谢

您可以使用聚合函数

$sql = "SELECT COUNT( * ),max(YOUR MONTH COLUMN) as MONTH as Count
FROM AttendanceDB
WHERE YEAR( class_time ) =  '2015'
AND studentid = '$studentid'
AND furikae = 0
GROUP BY MONTH( class_time )";

以下是我认为对您有帮助的内容:

$sql = "SELECT MONTH( class_time ) AS month, COUNT( * ) as Count
FROM AttendanceDB
WHERE YEAR( class_time ) =  '2015'
AND studentid = '$studentid'
AND furikae = 0
GROUP BY MONTH( class_time )";

怎么样:

$sql = "SELECT MONTH(class_time) AS m, COUNT(*) AS c
    FROM AttendanceDB WHERE YEAR(class_time) = '2015'
    AND studentid = '$studentid'
    AND furikae = 0
    GROUP BY m";

这样您就可以将月份作为一个单独的列,它也会在结果中显示为 $row['m'],每月计数显示为 $row['c']。 (我避免使用与 MySQL 函数名称相同的名称,因此 mc。)