php - Mysql 根据日期计算行数

标签 php mysql pdo

好吧,我不知道它应该是什么标题,也不知道该如何解释,但我会尽力解释我的问题。

我有此表包含某些数据,这些数据侧重于 date_participatedfblike_point

enter image description here

嗯,我想要的输出应该是

2013-03-20 1

2013-03-19 3

所以基本上,每个日期都会计算 fblike_point 的数量

在 2013 年 3 月 19 日它有总计 3 个 fblike_point,在 2013 年 3 月 20 日它有一个总计 1 个 fblike_point

我的问题是,我输出的不是我想要的结果,我得到的结果是2013-03-19 4

停留在1个日期,统计fblike_point的个数

这是我的代码。

$query = "SELECT DISTINCT date_participated, COUNT(fblike_point) as fblike FROM event_raffles WHERE ticket_id='". $ticket_id ."' AND event_table='". $event_table ."' AND status='1' ORDER BY date_participated DESC";
$result = db_query($query);

foreach ($result as $values) {
    echo $values->date_participated . " " . $values->fblike . "<br>";
}

有什么解决办法吗?任何帮助,将不胜感激。 :)

最佳答案

您应该更改查询以使用 GROUP BY 而不是 DISTINCT

SELECT date_participated, COUNT(fblike_point) as fblike 
FROM event_raffles
GROUP BY date_participated

您使用 DISTINCT 的方式是获取所有唯一日期,并为每个结果添加整个结果集中返回的记录数量。

使用GROUP BY 允许您对该组 使用任何可用的聚合函数。


编辑

正如@ysth 所提到的,您可能希望使用SUM 而不是使用COUNT,具体取决于fblike_point 可能具有的值.

使用 SUM 实际上是更明智的做法。

关于php - Mysql 根据日期计算行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15517067/

相关文章:

php - Magento API 太慢?

php - 如何使用 session ID 进行身份验证

php - 如何在 magento 中以编程方式更新自定义选项?

mysql - 网络分析的最佳数据存储

php - 设置实体 OneToOne

mysql - MariaDB 和 1064 错误

PHP 表单弹出确认请求

php - 多个查询和 LastInsertId

php - 如何使用 PDO 在 PHP 中创建包含分隔符的存储过程?

PHP匹配主题表和页表